我甚至不确定我是否使用了正确的术语,无论这是否真的是机器人。我不想使用“垃圾邮件”这个词,因为它不像我有正在创建/发送垃圾邮件的评论或帖子。它看起来更像是在向我的域发出相同的重复请求,这让我觉得它是某种机器人。
我已经将我的第一个rails应用程序打开到'public',这是一个非常小的用户群,目前<50。那是上周五。我今天开始遇到性能问题,所以我查看了日志,我看到了大量的这些RoutingErrors
ActionController::RoutingError (No route matches "/portalApp/APF/pages/business/util/whichServer.jsp" with {:method=>:get}):
他们正在填写日志,我假设这导致了减速。注意结尾的.jsp,这是一个rails应用程序,所以我在我的应用程序中没有这样的远程URL。我的意思是,/ portalApp我甚至没有,所以我不知道它来自何处。
这是在Dreamhost上托管的,我与他们的一个支持人员聊天,他建议使用htaccess阻止事情的几个网站。但看起来您需要知道请求来自的IP或域,我不知道。
我怎么能阻止这个?如何从请求中找到IP或域?还有其他建议吗?
跟进信息:
查看访问日志后,看起来它不是机器人。也许我没有正确阅读日志,但有来自同一IP的有效网址请求(从我的Flex应用程序中生成)。所以现在我想知道它是否是某种生成请求的插件,但我真的不知道。现在我想知道是否可以根据模式阻止某个网址请求,但我想这是一个单独的问题。
答案 0 :(得分:2)
老问题,但对于仍在寻找替代方案的人,我建议查看Kickstarter的rack-attack gem。不仅允许黑名单和白名单,还允许限制。
答案 1 :(得分:0)
这些页面似乎提供了一些很好的建议: Here
有关用户代理阻止的部分可能是您可以查看实施的内容。无论如何你可以从你的日志中获取bot的useragent吗?如果是这样,请查找可能识别机器人的useragent的唯一方面,并将以下内容添加到.htaccess替换相关位
BrowserMatchNoCase SpammerRobot bad_bot
Order Deny,Allow
Deny from env=bad_bot
详细介绍了该链接的详细信息,当然,如果您无法从日志中获取使用者,那么这对您没有用处!
答案 2 :(得分:0)
您还可以更新 public / robots.txt 文件以允许/禁止机器人。