配置Apache以有效阻止恶意机器人和刮刀,涉及一种组合各种技术的多层方法。没有单一的解决方案是万无一失的,但是方法组合提供了强大的保护。这是有效策略的细分:
1。ModSecurity:这可以说是缓解机器人的最强大的Apache模块。 ModSecurity是一个Web应用程序防火墙(WAF),它允许您定义自定义规则以检测和阻止恶意流量。您可以根据各种标准创建规则,包括IP地址,用户代理,请求模式和HTTP标头。例如,您可以阻止包含刮刀经常使用的特定关键字的请求,也可以阻止源自已知的恶意IP范围的请求。您还可以利用OWASP MODSECURITY核心规则集(CRS)等来源的预构建的规则集来快速实现强大的基线。适当的配置需要了解正则表达式和HTTP请求结构,但是在安全性方面的收益很大。
2 .htaccess文件规则:对于更简单的阻塞,您可以使用.htaccess
文件来实现基本规则。这些规则不如MODSECURITY强大,但对于快速修复或阻止特定已知的坏演员而言可能是有用的。例如,您可以使用指令Deny from
来阻止特定的IP地址或范围。您还可以使用RewriteEngine
和RewriteCond
指令采用更复杂的规则,以根据用户代理,引用URL或其他标题来分析请求。但是,要谨慎对待复杂的.htaccess
,因为书面规则不佳会对您的网站的性能或功能产生负面影响。
3。用户代理过滤:机器人通常会用独特或可疑的用户代理来识别自己。您可以使用modsecurity或.htaccess
规则来基于特定的用户代理来阻止请求。但是,这不是万无一失的方法,因为复杂的机器人可以轻松地欺骗其用户代理。认为这是一项补充措施,而不是主要防御。
4。限制:这涉及限制在特定时间范围内从单个IP地址允许的请求数量。这对于减轻蛮力攻击和过度刮擦至关重要。 mod_evasive
或mod_limitipconn
等APACHE模块可以有效地实现速率限制。这些模块允许您为每秒或分钟的请求配置阈值,从而在超过时触发阻止操作。
5。验证码:对于敏感的动作,例如表单提交或帐户创建,实施验证码可以有效地阻止机器人。虽然不是直接的Apache配置,但集成验证码服务添加了针对自动攻击的另一层保护。
几个Apache模块在防止自动攻击方面表现出色。选择取决于您的特定需求和技术专长:
mod_evasive
,该模块限制了单个IP地址的并发连接数量。这对于防止拒绝服务(DOS)攻击特别有用,该攻击通常是由机器人发射的。有效地限制了单个IP地址的请求,依赖于使用mod_evasive
或mod_limitipconn
等速率限制模块。这些模块允许您指定每秒,分钟或小时请求的阈值。超过这些阈值会触发诸如临时或永久性IP阻塞之类的动作。
配置示例(mod_evasive):
特定的配置将取决于您选择的模块,但这是使用mod_evasive
一般想法:
<code class="apache"><ifmodule mod_evasive20.c> EvasiveHTTPDDenyStatus 403 EvasiveHTTPDLogFormat "%h %l %u %t \"%r\" %>s %b" DOSEmail nobody@example.com DOSWhitelist 127.0.0.1 DOSPageCount 2 DOSSiteCount 5 DOSPageInterval 1 DOSSiteInterval 1 DOSThreshold 10 </ifmodule></code>
此示例将配置mod_evasive
在1秒间隔内10个请求后阻止IP地址( DOSThreshold 10
, DOSSiteInterval 1
)。根据您的流量模式和公差水平调整这些参数。请记住根据需要调整电子邮件地址和白名单。
尽管没有单个“完美”配置,但许多示例和资源都可以在线提供。搜索“ apache mod_security规则缓解机器人”,“ apache .htaccess bot Protection”或“ Apache Rate Limiting配置”将产生许多示例。但是,在调整这些示例时谨慎行事。在您在生产服务器上实施之前,请仔细检查规则以了解其含义。错误配置的规则可能会对合法用户产生负面影响。从基本配置开始,并根据需要逐渐添加更多的限制性规则,密切监视您的服务器日志,以确保任何意外的后果。请记住,定期更新您的规则并适应不断发展的机器人技术对于长期有效性至关重要。
以上是如何配置Apache来阻止恶意机器人和刮刀?的详细内容。更多信息请关注PHP中文网其他相关文章!