我得到一个$_GET
并且用户能够将$_GET
字符串发送到MySQL,所以快速提问:
是这个查询:mysql_query("SELECT XX FROM ZZ WHERE YY %LIKE% " . htmlspecialchars($_get['string']) . ";");
足够安全?还是我应该添加除htmlspecialchars()
以外的其他内容以确保安全?
预先感谢您的所有答复。
最佳答案
不安全
琐碎的示例数据甚至显示htmlspecialchars在做“事情”,这只是错误的“事情”。
1;DROP TABLE all_your_precious_data--&
快乐的编码。
解决方案:根据PDO或mysqli使用占位符(如果希望继续推广过时的做法,请使用
mysql_real_escape_string
。)请参见Best way to stop SQL injection in PHP和Prevent injection SQL with PHP和Can SQL injection be prevented with just addslashes?
关于php - htmlspecialchars是否可以保护此MySQL查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7355639/