Session 只为真实的人创建帐户

Session 只为真实的人创建帐户,session,cookies,web-crawler,Session,Cookies,Web Crawler,我正在建立一个简单的网站,用户可以尝试一个网站,而无需注册。我基本上是在用户不知道的情况下创建影子帐户并登录用户,所以我不必担心未登录用户的功能 然后,我将cookie设置为一个用户,这样他们可以在以后的任何时候访问该网站,而不会丢失任何数据 问题是,有很多刮刀,机器人,爬虫。。。这些机器人每次访问时都会无意中创建一个新帐户,因为它们不接受cookie,我无法在第二次访问时识别它们。他们中的一些人经常访问,因此我最终拥有了10万个从未真正使用过的帐户 我几乎没有想到什么: 如果页面上没有进一步的

我正在建立一个简单的网站,用户可以尝试一个网站,而无需注册。我基本上是在用户不知道的情况下创建影子帐户并登录用户,所以我不必担心未登录用户的功能

然后,我将cookie设置为一个用户,这样他们可以在以后的任何时候访问该网站,而不会丢失任何数据

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

我几乎没有想到什么:

如果页面上没有进一步的操作,则终止/删除用户似乎是最好的主意 检测用户是否接受Cookie这需要我重定向用户并验证他是否可以接受Cookie-不确定这有多高效/慢 解析用户代理并识别浏览器如果无法识别它是一个机器人我不确定这有多可靠
我可以选择什么来解决这个问题,您有什么建议?

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

Expire/remove user也可以很好地工作,但您可能最终会创建和删除大量用户,这在服务器上可能会很昂贵

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