我得到一个$_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 PHPPrevent injection SQL with PHPCan SQL injection be prevented with just addslashes?

关于php - htmlspecialchars是否可以保护此MySQL查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7355639/

10-11 19:59