if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
header('HTTP/1.0 404 Not Found');
}
Run Code Online (Sandbox Code Playgroud)
为什么不这样做?我得到一个空白页面.
这个问题不是针对SQL注入攻击的保护.StackOverflow已经多次回答了这个问题,我已经实现了这些技术.这是关于停止尝试.
最近我的网站受到大量注射攻击.现在,我捕获它们并返回一个静态页面.
这是我的URL的样子:
/products/product.php?id=1
Run Code Online (Sandbox Code Playgroud)
这就是攻击的样子:
/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
Run Code Online (Sandbox Code Playgroud)
我确信这不仅仅是一个糟糕的链接或胖指法打字,所以我不想将它们发送到概述页面.我也不想在我的网站上使用任何提供静态页面的资源.
我正在考虑让页面死掉die().这种方法有什么问题吗?或者是否有我可以使用PHP设置的HTML返回代码更合适?
编辑:
基于以下几条评论,我查找了如何返回"找不到页面".icktoofay的Stack Overflow 回答建议使用404然后使用die(); - 机器人认为没有页面甚至可能会消失,并且没有更多的资源用于显示页面未找到的消息.
header("HTTP/1.0 404 Not Found");
die();
Run Code Online (Sandbox Code Playgroud)