有一个站点资源,它提供了一些一般的统计信息以及搜索工具的接口。这个搜索操作是昂贵的,所以我想限制频繁和连续(即自动)的搜索请求(来自人,而不是来自搜索引擎)。
我相信有许多现有的技术和框架执行一些智能抓取保护,所以我不必重新发明轮子。我通过mod_wsgi使用Python和Apache。
我知道mod_evasive(将尝试使用它),但我也对任何其他技术感兴趣。
如果有人正在寻找你的网站和数据,那么在这种情况下,没有什么能阻止足够聪明的攻击者。
尽管有些事情值得一试:
- 保留来自特定ip和user - agent的搜索使用计数器。当达到每分钟/每小时/每天的阈值时,阻止它们。
- 使用潜在有害ip或威胁级别的黑名单(例如,您可以使用Cloudflare API)
- 缓存频繁的搜索结果,使其成本更低
- 这可能有点疯狂,但你可以在图像上或通过flash/java小程序渲染统计数据-这将使它们更具挑战性
- 与前一个有点类似:使用一些棘手的API来访问搜索结果,例如它可以是WebSockets上的协议缓冲区。因此,有些人可能需要一个成熟的浏览器来抓取它,或者至少必须围绕node.js构建一些技巧。缺点-你会失去使用旧浏览器的合法客户端。
您可以尝试robots.txt文件。我相信你只是把它放在了你的申请的基础上,但是那个网站应该有更多的细节。Disallow
语法就是你要找的。
您可能也对禁用动态url这个问题感兴趣。