.htaccess htaccess block*机器人和机器人*

.htaccess htaccess block*机器人和机器人*,.htaccess,block,bots,.htaccess,Block,Bots,我很难阻止两个坏机器人不断从我的网站上吸收带宽,我确信这与他们使用的用户代理名称中的*有关 现在,我正在使用以下代码阻止坏机器人(这是一个摘录) 当我尝试执行RewriteCond%{HTTP\u USER\u AGENT}^*bot$[或]或RewriteCond%{HTTP\u USER\u AGENT}^(*bot)$[或]时,我得到一个错误 猜测有一种非常简单的方法可以做到这一点,但我在谷歌上还没有找到。正则表达式模式中的星号(*)需要转义,因为它被解释为正则表达式的一部分。 Rewri

我很难阻止两个坏机器人不断从我的网站上吸收带宽,我确信这与他们使用的用户代理名称中的*有关

现在,我正在使用以下代码阻止坏机器人(这是一个摘录)

当我尝试执行
RewriteCond%{HTTP\u USER\u AGENT}^*bot$[或]
RewriteCond%{HTTP\u USER\u AGENT}^(*bot)$[或]
时,我得到一个错误

猜测有一种非常简单的方法可以做到这一点,但我在谷歌上还没有找到。

正则表达式模式中的星号(*)需要转义,因为它被解释为正则表达式的一部分。
RewriteCond%{HTTP\u USER\u AGENT}^\*bot$

应该这样做。

正则表达式模式中的星号(*)需要转义,因为它被解释为正则表达式的一部分。
RewriteCond%{HTTP\u USER\u AGENT}^\*bot$


应该这样做。

我认为您缺少一个点
,请将您的条件更改为:

RewriteCond %{HTTP_USER_AGENT} ^.*bot$ [OR]

我认为您缺少一个点,请将您的条件更改为:

RewriteCond %{HTTP_USER_AGENT} ^.*bot$ [OR]

但这将如何防止坏的机器人访问

我在一家安全公司工作(也是PM),我可以告诉你99.9%的坏机器人不会在他们的用户代理字符串中使用这些表达式

大多数情况下,坏机器人会使用看起来合法的用户代理(模仿浏览器和像Googlebot这样的VIP机器人),你不能仅仅通过用户代理数据过滤它们

为了有效检测机器人,您应该查看其他标志,如:

1) 可疑签名(即标题参数的顺序)

或/及

2) 可疑行为(即早期robots.txt访问或请求速率/模式)

然后,您应该使用不同的挑战(即JS或Cookie,甚至验证码)来验证您的怀疑

您描述的问题通常被称为“寄生阻力”

这是一个非常真实和严肃的问题,我们实际上在几个月前发表了一项关于它的研究

(我们发现,在一个平均规模的网站上,51%的访问者是机器人,31%是恶意的)

老实说,我不认为用几行正则表达式就可以解决这个问题

我们免费提供我们的机器人过滤服务,还有其他一些类似我们的。(如果需要,我可以推荐优质服务)


德国劳埃德船级社。

但这将如何防止坏机器人访问

我在一家安全公司工作(也是PM),我可以告诉你99.9%的坏机器人不会在他们的用户代理字符串中使用这些表达式

大多数情况下,坏机器人会使用看起来合法的用户代理(模仿浏览器和像Googlebot这样的VIP机器人),你不能仅仅通过用户代理数据过滤它们

为了有效检测机器人,您应该查看其他标志,如:

1) 可疑签名(即标题参数的顺序)

或/及

2) 可疑行为(即早期robots.txt访问或请求速率/模式)

然后,您应该使用不同的挑战(即JS或Cookie,甚至验证码)来验证您的怀疑

您描述的问题通常被称为“寄生阻力”

这是一个非常真实和严肃的问题,我们实际上在几个月前发表了一项关于它的研究

(我们发现,在一个平均规模的网站上,51%的访问者是机器人,31%是恶意的)

老实说,我不认为用几行正则表达式就可以解决这个问题

我们免费提供我们的机器人过滤服务,还有其他一些类似我们的。(如果需要,我可以推荐优质服务)


GL.

这也可能有用:为安全公司工作的荣誉,但您的公司不知道哪些坏机器人正在攻击我的网站,以及这些机器人正在使用哪些用户代理字符串。感谢你在这里的努力,但你的回答与解决我的问题无关,更像是一个垃圾推销,而不是试图帮助我做我需要的事情。此外,这可能很有用:为安全公司工作的荣誉,但你们公司不知道什么坏机器人正在攻击我的网站,也不知道这些机器人在使用什么用户代理字符串。感谢您在这里的努力,但您的回答与解决我的问题无关,看起来更像是一个垃圾推销,而不是试图帮助我实现我的需求。您的意思是这导致了Apache 500?你能告诉我它在日志中写的是什么错误吗?你的意思是它导致了Apache 500?你能告诉我在日志中写的是什么错误吗?我没有正确预览。我的反斜杠没有出现,需要逃脱。讽刺的是,嗯。是的,这正是我需要的。我尝试了MsnBot,但它对我不起作用。它只为谷歌机器人工作。我使用:RewriteCond%{HTTP\u USER\u AGENT}^*bot$RewriteRule^.*$-[F]@NileshKumar此表达式应匹配以“bot”结尾的任何用户代理。检查MsnBot发送的用户代理,如果不同,您可能应该提交一个新问题,描述您迄今为止尝试过的内容。Doh-我没有正确预览。我的反斜杠没有出现,需要逃脱。讽刺的是,嗯。是的,这正是我需要的。我尝试了MsnBot,但它对我不起作用。它只为谷歌机器人工作。我使用:RewriteCond%{HTTP\u USER\u AGENT}^*bot$RewriteRule^.*$-[F]@NileshKumar此表达式应匹配以“bot”结尾的任何用户代理。检查MsnBot用户代理发送的内容,如果不同,您可能应该提交一个新问题,描述您迄今为止尝试过的内容。