mysql - 防止通过 URL 字符串提交的基于 DDoS 的 MySQL 查询的方法

标签 mysql security sql-injection ddos botnet

我正在使用一个不是我创建的网站。看来我正在处理涉及通过 URL 字符串查询数据库的 DDoS 和/或 SQL 注入(inject)攻击。我目前正在研究向查询“添加斜杠”的方法,有人告诉我这将有助于进行基于表单的攻击:

http://php.net/manual/en/function.addslashes.php

如果这不起作用,我很好奇是否有一种方法可以简单地限制每个 session 、每个 IP 或任何其他可能至少减慢攻击速度的变量执行查询的频率。提前谢谢你。

最佳答案

是的,您可以在 MySQL 中限制每个用户每小时的使用量:
http://dev.mysql.com/doc/refman/5.6/en/user-resources.html

但是,大多数网络应用程序对所有应用程序 用户使用一个MySQL 用户名。因此,这可能只会限制您的整个网站。

addslashes 函数不是防止 SQL 注入(inject)的正确解决方案。每个 MySQL API 都包含一个更合适的转义函数,例如 mysqli_real_escape_string()PDO::quote() .

但更好的是使用带有查询参数的准备语句,而不是将变量转义并连接到 SQL 查询字符串中。

如果您使用 检查其他问题,则很容易找到示例标签。最好的答案之一是 How can I prevent SQL injection in PHP?

我写了一篇关于这个的流行演讲:SQL Injection Myths and Fallacies .

关于mysql - 防止通过 URL 字符串提交的基于 DDoS 的 MySQL 查询的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19496097/

相关文章:

security - 如何隐藏向非Jenkins用户泄露的敏感数据

php - 检查生成的许可证是否有效

php - 制作群组成员 View 加入群组的页面

mysql - Mysql 查询性能滞后

Mysql 5.6.10配置

php - 不确定我是否需要 SSL 或替代方案

mysql ORDER BY IF ELSE

ruby-on-rails - Rails、SQL 注入(inject)和参数

http - =3D 在恶意 URL 中的含义

mysql - 使用 sql 转义的动态 mysql 查询是否与准备好的语句一样安全?