【问题标题】:How to remove URL injection by parameter en masse?如何通过参数删除 URL 注入?
【发布时间】:2016-05-04 13:39:13
【问题描述】:

我的(wordpress)网站最近成为攻击的受害者……最终注入了大约 20,000 个 URL。我已经彻底清理了网站,堵住了所有的漏洞,并安装了进一步加固的文件,但我仍然在谷歌索引中留下了所有这些 URL 以及谷歌上的一条消息,上面写着“这个网站可能被黑了“因为所有这些垃圾网址。能够通过并将它们添加到网站管理员 URL 删除工具是不现实的。我听说最好的方法是让它们显示 404(或 403),它们自然会从索引中掉出来。

这是我想做的,但还没有弄清楚如何做:我想想出一种方法来强制任何带有特定参数的 URL 显示 404 或 403。对于例如,以下 URL 很好地表示了当前已编入索引的 URL:

http://mysiteurlhere.com/index.php?free-online-games-with-cash-prizes.html&items=2&pidnum=1568

“items”和“pidnum”都是我见过的每个索引 URL 中使用的参数。我的问题是:是否可以使用某种 .htaccess 语句挑出其中一个参数,并阻止或强制 URL 为 404?

(注意:我确实浏览了 robots.txt 以禁止将带有此类参数的任何其他 URL 编入索引...我只是不知道如何执行 .htaccess 方法)

【问题讨论】:

  • 当您转到此页面时会发生什么?没有出现 404 消息吗?
  • 它现在只显示主页(index.php)的副本。在我清理它之前,它在导航和正文内容之间注入了各种垃圾内容。

标签: wordpress apache .htaccess url code-injection


【解决方案1】:

试试.htaccess:

RewriteEngine on
RewriteCond %{QUERY_STRING} (?:^|&)items=.*pidnum= [NC]
RewriteRule ^ - [R=404,L]

【讨论】:

  • 您在问题中使用相同的链接进行测试?
  • 是的。我只是注意到它在开头删除了“index.php”部分,但 URL 仍然显示与以前相同的内容(主页的副本)。
  • 也就是说URL显示为:mysiteurlhere.com/…
  • 或使用RewriteRule ^index\.php$ - [NC,F,L]
  • 因为它在加载时会删除 index.php 部分并且 URL 以 /?free-online-games-with-cash-prizes ... 开头...有没有办法定位问号部分在开始而不是?我尝试用问号替换 index\.php,然后我得到所有页面的内部服务器错误...
猜你喜欢
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多