仅为真人创建帐户

时间:2015-03-10 11:08:44

标签: session cookies web-crawler

我正在建立一个简单的网站,用户可以在不注册的情况下试用网站。我基本上创建 shadow 帐户并在没有他们知情的情况下登录用户,因此我不必担心未登录用户的功能。

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

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

我想到的事情很少:

  1. 如果页面上没有进一步的操作,则过期/删除用户(看起来像最好的主意)
  2. 检测用户是否接受Cookie (这要求我重定向用户并验证他是否可以接受Cookie - 不确定这是多少有效/慢)
  3. 解析用户代理并识别浏览器,如果无法识别它是一个机器人(我不确定这是多么可靠)
  4. 我有什么选择来解决这个问题,你有什么建议?

1 个答案:

答案 0 :(得分:0)

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

过期/删除用户也可以正常工作,但最终可能会创建和删除许多用户,这些用户在服务器上可能会很昂贵。

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