php - htmlspecialchars 是否保护此 MySQL 查询?

标签 php mysql get

我得到了一个 $_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/

相关文章:

mysql - Nodejs中从mySQL获取数据时如何获取Async/await函数的返回值

mysql - 尝试连接到数据库服务器时出错 : [1045] Access denied for user

php - GET 命令给出两种输出,为什么?

controller - AngularJS - 按 ID 获取数据

php - JavaScript 错误 - 意外的标识符

php - 使用php对记录集列中的负数/正数求和

语句中的 PHP MySQL 错误

javascript - .get() 和 .find() 用于搜索结果

php - 在多个服务器上扩展 cronjobs

php - Steam 网络 API : How to get the tags for items in Steam Inventory