【问题标题】:Detecting automated web requests检测自动 Web 请求
【发布时间】:2011-08-25 14:07:31
【问题描述】:

我们正在努力获得一个更好的指标来衡量进入我们网站的自动请求的数量。我们的网站提供大量数据,但也提供网页。很容易区分提供的网页和提供的数据文件,但提供的一些数据文件是通过网页手动请求生成的。自动请求通常使用 curl 或 wget 等程序直接获取数据。

我们目前的做法是定期查看用户代理字符串并根据用户代理(例如 wget)判断这是一个自动请求。问题是一直在添加新的代理,所以我们落后了。而且,一些以自动方式检索数据的人通过使用声称自己是浏览器的用户代理字符串来伪造数据。

我想到,如果根据 Apache 日志条目,我们可以确定“Javascript 已启用”,然后有人发送了请求。它并不完美,但它会比我们现在拥有的更好、更便携。如果我们检测到它已关闭,我们可以将其视为自动请求。

这样的事情可能吗?是否有足够聪明的代码或库来为我们完成这项工作并定期维护?

【问题讨论】:

    标签: javascript apache logging user-agent


    【解决方案1】:
    【解决方案2】:

    没有直接的方法可以让 Apache 检测客户端是否激活了 JS。

    最有用的方法是只查看哪些 IP 对异常高的请求计数负责,然后禁止它们。事实上,这可以是自动化的,例如计算 IP 并在 IP 过于活跃时发送 403 错误。

    【讨论】:

    • 谢谢。这是我的怀疑。我们不想禁止这些 IP,只是能够准确地说出它是来自人工还是自动化过程。
    【解决方案3】:

    您可以维护白名单而不是黑名单。如果用户无法使用浏览器 xyz 获取您的内容,用户会通知您,您可以添加它们。

    【讨论】:

    • 我们需要让每个人都通过,除非他们经常打我们,否则会导致系统崩溃。
    【解决方案4】:

    您可以使用cloudflare 服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      相关资源
      最近更新 更多