刷新页面太多

问题描述:

我注意到4chan,如果你刷新页面太多(例如,填写表单太多次.etc) - 他们向你展示了recaptcha页面。我想知道如何做到这一点,他们是否使用算法或什么来决定什么是可疑行为?你将如何在PHP中记录使用历史记录(即如何在PHP中执行此操作)?刷新页面太多

这很可能是使用正确的会话完成的 - 或者它们会使用IP地址将数据存储在数据库中(不太可能是由于动态IP)。

您可以使用会话来跟踪某人访问的最后一页的内容,以及它是否与当前页面相同。然后,您可以增加一个计数器,以查看它们连续触及同一页面的次数,如果太频繁,可以重定向。你也可以添加一个时间戳来查看他们上次访问页面多久以前,如果他们点击刷新按钮,这将是一个很小的差异。

我想,如果你用$ _SESSION []做这个,它会比存储数据库好。当浏览器窗口关闭时,SESSION将被清除

+2

如果您可以避免它,那么您也不希望在每次有人点击您的站点时读写数据库 - 这是一个拒绝服务向量,它是他们试图在这里放慢脚步的事情之一。 – Rob 2011-01-08 23:23:17