问题描述
我得到了$_GET
,用户能够将$_GET
字符串发送到MySQL,所以快速提问:
I got a $_GET
and users are able to send the $_GET
string to the MySQL, so quick question:
此查询:
mysql_query("SELECT XX FROM ZZ WHERE YY %LIKE% " . htmlspecialchars($_get['string']) . ";");
足够安全吗?还是我应该添加除htmlspecialchars()
以外的其他内容以确保安全?
enough to be safe? or I should add something more than htmlspecialchars()
to be safe?
预先感谢您的所有答复.
Thank you in advance for all replies.
推荐答案
不安全.
甚至在上显示html特殊字符在做事情"的临时示例数据-只是错误的事物" .
1;DROP TABLE all_your_precious_data--&
快乐的编码.
解决方案:按照PDO或mysqli使用占位符(如果希望继续推广过时的做法,则使用mysql_real_escape_string
...
Solution: Use placeholders as per PDO or mysqli (or use mysql_real_escape_string
if you wish to keep promoting outdated practices...)
请参见在PHP中停止SQL注入的最佳方法和使用PHP防止注入SQL 和
这篇关于htmlspecialchars是否可以保护此MySQL查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!