我正在使用一个不是我创建的网站。看来我正在处理涉及通过 URL 字符串查询数据库的 DDoS 和/或 SQL 注入攻击。我目前正在研究向查询“添加斜杠”的方法,如果基于表单,我被告知这将有助于攻击:
http://php.net/manual/en/function.addslashes.php
如果这不起作用,我很好奇是否有一种方法可以简单地限制每个会话、每个 IP 或任何其他可能至少会减慢攻击速度的变量执行查询的频率。先感谢您。
我正在使用一个不是我创建的网站。看来我正在处理涉及通过 URL 字符串查询数据库的 DDoS 和/或 SQL 注入攻击。我目前正在研究向查询“添加斜杠”的方法,如果基于表单,我被告知这将有助于攻击:
http://php.net/manual/en/function.addslashes.php
如果这不起作用,我很好奇是否有一种方法可以简单地限制每个会话、每个 IP 或任何其他可能至少会减慢攻击速度的变量执行查询的频率。先感谢您。
是的,您可以在 MySQL 中限制每个用户每小时的使用量:http:
//dev.mysql.com/doc/refman/5.6/en/user-resources.html
但是,大多数 Web 应用程序对所有应用程序用户使用一个MySQL用户名。因此,这可能只会限制您的整个网站。
addlashes 函数不是防止 SQL 注入的正确解决方案。每个 MySQL API 都包含一个更合适的转义函数,例如mysqli_real_escape_string()或PDO::quote()。
但更好的是使用带有查询参数的准备好的语句,而不是将变量转义和连接到 SQL 查询字符串中。
如果您使用sql-injection标记检查其他问题,则很容易找到示例。最好的答案之一是如何防止 PHP 中的 SQL 注入?
我为此写了一篇流行的演示文稿:SQL 注入神话和谬误。
坦率地说,你必须对你的问题更加确定。否则,没有直接的高雅答案将有任何实际帮助。
顺便说一句,您的问题并不清楚,而且几乎不可信,但如果您的站点真的运行通过 GET 请求接收到的整个 SQL 查询 - 没有任何操作或软件会有所帮助。