【发布时间】:2013-08-18 00:00:12
【问题描述】:
这个问题不是关于防止 SQL 注入攻击。这个问题在 StackOverflow 上已经回答了很多次,我已经实现了这些技术。这是关于停止尝试。
最近,我的网站遭到大量注入攻击。现在,我捕获它们并返回一个静态页面。
我的网址如下所示:
/products/product.php?id=1
这是攻击的样子:
/products/product.php?id=-3000%27%20IN%20BOOLEAN%20MODE%29%20UNION%20ALL%20SELECT%2035%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C%27qopjq%27%7C%7C%27ijiJvkyBhO%27%7C%7C%27qhwnq%27%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35%2C35--%20
我确信这不仅仅是错误的链接或粗手指的打字,所以我不想将它们发送到概览页面。我也不想在我的网站上使用任何资源来提供静态页面。
我正在考虑让页面以die() 消失。这种方法有什么问题吗?或者有没有我可以用 PHP 设置的更合适的 HTML 返回码?
编辑:
根据下面的几个 cmets,我查找了如何返回“找不到页面”。 icktoofay 的这个 Stack Overflow answer 建议使用 404,然后使用 die(); - 机器人认为没有页面甚至可能消失,并且没有更多资源用于显示页面未找到消息。
header("HTTP/1.0 404 Not Found");
die();
【问题讨论】:
-
只使用准备好的语句
-
返回 403 错误可能有点合适。
-
服务器前有F5负载均衡器吗?
-
@bksi 如果您阅读第一行,您会注意到问题不是这样的
-
恕我直言,这个问题与编程无关,它是服务器管理员。