这个问题与防止 SQL 注入攻击无关。这个问题在 StackOverflow 上已经回答了很多次,我已经实现了这些技术。这是关于停止尝试。
最近,我的网站遭到了大量注入攻击。现在,我捕获它们并返回一个静态页面。
这是我的 URL 的样子:
/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 返回代码?
编辑:
根据下面的几条评论,我查找了如何返回“找不到页面”。icktoofay 的这个 Stack Overflow回答建议使用 404,然后使用 die(); - 机器人认为没有页面甚至可能消失,并且没有更多资源用于显示页面未找到消息。
header("HTTP/1.0 404 Not Found");
die();