阅读时间:6分钟 (1141字)

阻止机器人;减少幽灵用户数量

Bloquer les robots; diminuer le nombre d'utilisateurs fantômes

我们经常遭受恶意脚本的攻击,它们试图渗透我们的Joomla!网站,以便在网站的评论、论坛、黄金页等地方注入垃圾邮件,当然,还为了生成幽灵用户。如果这些用户被自动批准,那么他们将拥有“注册用户”的级别,这可能会使他们能够发布数据,从而产生垃圾邮件。

在Joomla!网站上实施一些有效技术可以减少这种威胁。

其中两种技术涉及到的文件是 .htaccess 和另一种是用户管理。

 

 

1. .htaccess保护

.htaccess文件可能被大多数网站管理员所忽视。这个文件不仅允许在Joomla!中启用url重写(在将预存文件htaccess.txt重命名为 .htaccess 之后),还可以作为保护您网站访问的第一个元素。

在任何情况下,该文件都会在访问您网站的目标页面之前由服务器读取。

因此,这里的目的就是拒绝访问那些是机器人或检测到是“垃圾邮件”类型的url,即那些包含您认为应列入“黑名单”的某些词的url。

A. 阻止机器人

针对您网站的每个请求都是由一个程序执行的;通常是一个网页浏览器,但不仅限于此:您可以从网页编辑器、文字处理软件等访问url,也可以从恶意软件中访问,这些恶意软件被编程为例如垃圾邮件您的网站、破坏其安全性等。几年前,还有网站吸尘器,它们允许下载网站以“离线”保存。

这些程序通常有一个签名:在变量 "HTTP_USER_AGENT" 中提到的代码;这个变量是由启动连接到您网站的程序传递的。其中最著名(也是最受厌恶)的是代理 "MSIE",它可以表明您的访问者对浏览器的质量要求不高,嗯,怎么说呢,礼貌地说,不太苛刻。

这个变量可以被程序更改(任何脚本都可以伪装成Firefox),因此它不能保证知道谁访问了您的网站。

因此,阻止机器人意味着识别已知为恶意脚本的user_agent并将其阻止。在docs.joomla.org网站上提供了一个非详尽的列表:阻止不良用户代理

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] 
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:This email address is being protected from spambots. You need JavaScript enabled to view it. [OR] 
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] 
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] 
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR] 
## Liste simplifiée ... 
RewriteCond %{HTTP_USER_AGENT} ^Zeus 
## Note: The final RewriteCond must NOT use the [OR] flag.   ## Return 403 Forbidden error. 
RewriteRule .* - [F]

您需要编辑位于您的网站根目录下的 .htaccess 文件,并添加所有直到最后一个 "RewriteRule .* - [F]" 的 RewriteCond 行,以便将恶意用户重定向到403页面。

或者,为了好玩,将最后一行替换为以下行,该行将重定向到一个图像(不要重定向到您网站上的图像,因为机器人无法访问)。

RewriteRule (.*) http://www.distilnetworks.com/wp-content/themes/distil/images/theft-bot-home.png [L,QSA]

当您设置好阻止机器人的 .htaccess 后,您可以在 wannaBrowser 上进行测试:[http://www.wannabrowser.com/index.php](http://www.wannabrowser.com/index.php)。这是一个允许您初始化与网站连接的脚本之一,但在这里,目的是让您输入一个URL并选择一个您喜欢的User_Agent:如果您选择了一个您已阻止的代理,您将能够看到对您页面的访问将被拒绝。

B. 识别可疑的URL

一个可疑的URL是包含“危险”词汇(如“DROP”可能意味着删除数据库表(这里可能是“SQL注入”攻击))或出现在您网站上大量垃圾邮件中的词汇的URL。

因此,需要补充并更新这个列表。一些网站提供了多个列表。如果您安装了CrawlProtect,您会发现它生成的 .htaccess 文件包含一个令人印象深刻的关键词列表。

RewriteCond %{QUERY_STRING} ^.*(curl|wget|drop|truncate).* [NC]
RewriteRule ^(.*)$ index.php [F,L]

2. 用户管理

在阻止了机器人和URL中的一些关键词后,应禁止从Joomla类型的URL创建用户。实际上,当您允许在您的网站上创建用户账户时,可以访问http://votre_site/index.php?option=com_users&view=registration.这个URL是显示创建账户表单的URL,因此如果恶意脚本访问了该URL,它可以填写不同的字段并提交表单。

如果您启用了账户自动批准,那么您将有一个新用户,然后是第二个,然后是第三个,...直到脚本想要创建多少个。

一旦被批准,这个脚本就拥有了您的网站的用户访问权限;这是一个注册用户类型访问,很可能还拥有一些额外权限,比如发布评论,在论坛中写新主题……。然后您将面临无尽的垃圾邮件。

为了极大地限制这一点,最简单的方法就是:在您的Joomla网站上禁用账户创建。

接下来,如果您仍然希望向您的访客提供注册选项,请选择例如 Community Builder。  这就是我在我的博客上所做的事情(http://allevents.avonture.be): Community Builder 已配置为允许注册,并且不受网站全局参数的影响。  因此,我通过 CB 允许注册,但通过 com_users 禁止注册。  对于最终用户来说,这毫无区别:他可以访问创建账户页面,填写并提交表单,然后创建账户。  对于恶意脚本来说,这却是完全不同的,因为它试图访问的页面(com_users)禁止创建账户。

此外,为了进一步增强这种保护,要知道存在一个 CB 验证码插件。  这个验证码显示在 CB 注册页面,并且看起来非常有效。

如果您希望提高您的 Joomla! 网站的安全性,我也建议您了解“安全和 Joomla!®”的介绍

 

在 Joomla 社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不代表 Joomla 项目官方立场

0
领导力亮点 2013 年 9 月
 

评论

已经注册? 这里登录
尚未发表评论。成为第一个提交评论的人

通过接受,您将访问 https://magazine.joomla.net.cn/ 外部第三方提供的服务