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

spa*_*cle 2 mysql security sql-injection ddos botnet

我正在使用我没有创建的网站.看来我正在处理涉及通过URL字符串查询数据库的DDoS和/或SQL注入攻击.我目前正在调查查询中添加"斜杠"的方法,据我所知,如果是基于表单的话,它会有所帮助:

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

如果这不起作用,我很好奇是否有办法简单地限制每个会话,每个IP或任何其他可能至少减缓攻击的变量执行查询的频率.先感谢您.

Bil*_*win 6

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

但是,大多数Web应用程序对所有应用程序用户使用单个MySQL用户名.所以这可能只会限制整个网站.

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

但更好的方法是使用带有查询参数的预处理语句,而不是将变量转义并连接到SQL查询字符串中.

如果使用标记检查其他问题,则很容易找到示例.最好的答案之一是如何在PHP中阻止SQL注入?

我写了一篇关于此的流行演讲:SQL注入神话和谬误.