【问题标题】:Create accounts only for real people仅为真人创建帐户
【发布时间】:2015-03-12 14:31:58
【问题描述】:

我正在构建一个简单的网站,用户无需注册即可试用该网站。我基本上创建了 shadow 帐户并在用户不知情的情况下登录,因此我不必为未登录用户的功能而烦恼。

然后我将 cookie 设置给用户,以便他们以后可以随时来使用网站而不会丢失任何数据。

问题是有很多爬虫、机器人、爬虫...这些机器人每次访问时都会无意中创建一个新帐户,因为它们不接受 cookie,而我在第二次访问时无法识别它们。他们中的一些人经常访问,所以我最终得到了成千上万个从未真正使用过的帐户。

我想到了几件事:

  1. 如果页面上没有进一步的操作,则过期/删除用户(似乎是最好的主意)
  2. 检测用户是否接受 cookie(这要求我重定向用户并验证他是否可以接受 cookie - 不确定这是多么有效/缓慢)
  3. 解析用户代理并识别浏览器(如果无法识别它是机器人)(我不确定这有多可靠)

我有哪些解决这个问题的选择,你有什么建议?

【问题讨论】:

    标签: session cookies web-crawler


    【解决方案1】:

    您可以通过 AJAX 检查您的用户是否接受 cookie。在登录页面上设置一个 cookie,然后在页面加载 cookie 后立即将请求发送回服务器。并且仅当 cookie 存在时,才创建您的用户。这将很快并确认用户浏览器支持 cookie。

    过期/删除用户也可以很好地工作,但您最终可能会创建和删除大量用户,这在服务器上可能代价高昂。

    发送一个虚拟的用户代理标头对于机器人来说是一件非常简单的事情,我认为他们无论如何都会这样做(坏机器人)以确保网络服务器允许爬行。所以他们不能保证浏览器的真实性。

    【讨论】:

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