【问题标题】:detect if requests to PDF files检测是否对 PDF 文件的请求
【发布时间】:2020-04-21 09:35:59
【问题描述】:

我想检测对 PDF 文件的请求是否来自机器人。我们在网站上有 PDF 文件,并使用插入数据库来记录 PDF 文件的流量以进行报告。我们存储 HTTP_USER_AGENT、HTTP_SESSION 和 LogDate。从数据库来看,这看起来像是来自机器人,但我不确定如何检测?

有没有办法检测请求是机器人还是用户?

    04:08:07.680    1.pdf   87f6fdb7-c1a9-4d9d-876f-e800d0fe619a    SameIPAddress   192.168.3.201   Mozilla/5.0 (compatible; MSIE 7.0; Windows) 2020-01-02
    04:08:11.213    2.pdf   87b18096-dc95-4ab4-a67d-22c08fdb22af    SameIPAddress   192.168.3.201   Mozilla/5.0 (compatible; MSIE 7.0; Windows) 2020-01-02
    04:08:12.493    3.pdf   55cd5c40-c167-4059-971f-b6aec54a1673    SameIPAddress   192.168.3.201   Mozilla/5.0 (compatible; MSIE 7.0; Windows) 2020-01-02
    04:08:14.903    4.pdf   49001c85-3a4d-47dc-8632-fb681cb26d2a    SameIPAddress   192.168.3.201   Mozilla/5.0 (compatible; MSIE 7.0; Windows) 2020-01-02
    04:08:15.293    5.pdf   a7fe9350-7470-48b3-ad12-7f7dd61c1896    SameIPAddress   192.168.3.201   Mozilla/5.0 (compatible; MSIE 7.0; Windows)

【问题讨论】:

  • 我不知道您的用户如何访问 pdf 文件 - 但如果只是列出文件,那么访问之间的时间对于一个人来说似乎是合理的 - 唯一看起来快的是最后一个一个接近 0.3 秒 - 但如果是机器人,前两个之间超过 3 秒似乎非常慢。
  • @PaulF 它们列在 APSX 页面上,但人们确实可以选择使用链接访问它们。那么 30 秒以下的东西会是机器人吗?
  • 从理论上讲,这是不可能的——没有什么是人类能做的机器人不能做的,除非你想假设所有的 PDF 都表明一个机器人?
  • @Jefferson:在浏览器中显示您的 ASPX 页面并查看使用鼠标中键浏览链接以在新选项卡中打开的速度 - 我刚刚完成了 6 个链接大约 3 秒后翻页。

标签: c# web-crawler bots


【解决方案1】:

您可以使用用户代理信息或 IP 地址 - 安全地假设来自同一 IP 的多次点击(以毫秒为单位)是机器人,但理想的做法是在将信息存储到数据库之前检查其是用户还是机器人。像验证码或其他验证。

更多信息在这里:

https://security.stackexchange.com/questions/51091/how-to-detect-bots-clicking-a-link

【讨论】:

  • 除了验证码之外还有什么验证方式?
  • 复选框?像 reCAPTCHA
  • 是的,我只是不想让网站变得不友好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多