我有一个网站(使用wordpress构建),目前正受到机器人攻击(据我所知)。一遍又一遍地请求文件,引用者(几乎每次)都是turkyoutube.org/player/player.swf。所请求的文件位于主题文件的深处,并且始终后跟“ ?v=”和一个长字符串(即r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke)。

我尝试为该引荐来源网址设置.htaccess规则,似乎可以正常工作,只是现在我的404页面一遍又一遍地加载,而这仍然占用大量带宽。有没有办法创建不需要占用带宽的.htaccess规则?

我也尝试创建robots.txt文件,但是攻击似乎忽略了它。

#This is the relevant part of the .htaccess file:
RewriteCond %{HTTP_REFERER} turkyoutube\.org [NC]
RewriteRule .* - [F]


评论

每次攻击都来自同一个IP吗?

您的.htaccess规则是否有意触发404文件?似乎抛出一个普通的权限被拒绝错误会减少带宽的使用。

这是.htaccess文件的相关部分:RewriteCond%{HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule。*-[F]

但是,即使我的访问日志显示“ Http Code:404”,当我更改.htaccess时,带宽使用也似乎停止了。

在主要的wordpress .htaccess规则之前或之后,您是否张贴有.htaccess代码?

#1 楼




RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?turkyoutube.org.*$ [NC]
RewriteRule ^(.*)$ http://127.0.0.1/ [R=401,L]


请注意,未经测试,但应使用401 Not Authorized状态码将来自他们的请求重定向回自身。也就是说,如果漫游器甚至处理重定向(极不可能),但仍会看到状态代码。 404状态码可能更有效。任何人都应该告诉该机器人它可能应该放弃。

如果您扩大表达式以使其与主机匹配得更多,则在注释中发布的规则也绰绰有余。我使用接近(根据实际规则)阻止匹配libwww-perl的用户代理:

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* - [F,L]


评论


您是否发现许多机器人都具有HTTP_USER_AGENT = libwww-perl?这似乎是大多数机器人都会撒谎的东西。

–利亚姆
2010年8月10日,11:35

@Liam-令人惊讶的是,他们中有相当一部分从未尝试伪装成真正的浏览器(尽管可以肯定的是,有很多事情比不做)。我也觉得很奇怪:)

– Tim Post
2010年8月10日13:23



请注意,您在此处使用了很多非常慢的正则表达式。 。* $等于什么都没有,这要快得多。还有RewriteRule。*-[F,L],不需要*,因为您还是会忽略该条目。

– Alexis Wilke
2014年6月2日在21:54

#2 楼

除了IP阻止之外,我还将仔细检查正在请求的文件。对于诸如WordPress和Joomla之类的开源系统来说,这是相当普遍的事情,这就是它们经常更新的原因之一。如果您忽略了一些更新,则可能有人入侵了您的网站。

我曾经两次遇到过这种情况,一次是在从未完全部署(但留在原地)的测试站点上发生的,另一次是在公司网站上拥有有效访问权限的员工“窃取“ phpBB以便他的家人进行交流-更新本可以避免这些问题。在这两种情况下,分析都发现了问题,因为在您的情况下似乎确实如此。 Joomla攻击注入了JavaScript,这导致用户的浏览器加载了软件,而后者允许黑客将文件上传到服务器,这些文件是分布式“替代” google网站的一部分,导致用户每次登录。尽管这并不是完全常见的黑客攻击,但以防万一,请检查您的数据库用户表。

我当然不是要引起警报,但是花时间去浏览您的站点也没有什么害处过一会儿才知道发生了什么。有时您会惊讶于发现的内容。

评论


实际上,我认为这正是正在发生的事情。看起来被请求的文件甚至不应该存在。值得庆幸的是,一位友好的wordpress核心贡献者与我联系,所以我觉得我们会解决这个问题的。

–特拉维斯·诺斯库特(Travis Northcutt)
2010年7月28日在20:13

#3 楼

如果每次攻击都是来自相同的IP号(或一小组IP号),则应在防火墙中阻止该IP号。这不会花费任何带宽或在Web服务器上造成负担。

如果将其托管在Linux计算机上,则您具有对本文的root访问权限,并说明了如何执行此操作。

评论


并非每次都来自同一个IP。

–特拉维斯·诺斯库特(Travis Northcutt)
2010年7月28日在16:19

#4 楼

我在所有服务器上使用DenyHosts [1]。 DenyHosts禁止所有在n次之后登录失败的IP。您还可以发送通知。因此,您对登录来自哪个ips /主机有一个很好的了解。并且还具有网络更新功能和其他强大功能。但是安装起来仍然非常简单。

另一种方法是禁止来自中国或其他非目标国家/地区的所有IP范围/块(例如)。这可以通过在线“黑名单”来完成,也可以仅通过hosts.deny文件(例如DenyHosts)来完成。

[1] http://denyhosts.sourceforge.net/

#5 楼

只需将301重定向到fbi网站即可。

RewriteEngine on
RewriteCond%{HTTP_REFERER} ^ http(s)?://://(www。)?turkyoutube.org。$ [NC]
RewriteRule ^(。)$ http://www.fbi.gov [R = 301,L]