3

是否可以在不使用会话或 cookie 的情况下跟踪未登录的用户?有没有更靠谱的方法?
就像 www.filefactory.com 或其他类似的下载空间网站一样,他们可以跟踪您是否是免费用户并发送下载请求,在开始下一次下载之前您必须等待 x 次,我以为它使用了 session 或 cookie,但是在清除 session 之后和cookie或更改IP地址,它仍然是一样的。

我是一个试图创建网站的新手,我必须在登录之前跟踪用户,就像这个示例网站一样,我正在使用 php 和 javascript 设置会话和超时来保持捕获用户状态(在目录中写入文件或...我已经搜索了很长时间,如果有人知道任何教程或只是一点点线索如何像这个网站那样做,将不胜感激..

谢谢!

4

1 回答 1

7

您不跟踪谁未登录,您跟踪谁已登录。因此,默认情况下,每个人都会获得链接,因为您必须等待 xx 秒。如果您清除 cookie 并开始新会话,您仍然是默认用户。

现在,当有人登录时,您可以输入他已通过身份验证的会话。然后在页面上显示您检查的链接。现在,如果这个登录的用户清除他的 cookie,他将再次成为默认用户,直到他再次登录。

//not actual php code
if (authenticated) {
  //show direct download link
} else {
  //show link after xx seconds
}

如果您不想使用 session 来跟踪登录用户,还有其他方法,但大多数情况下它并不是真正需要的,甚至更不安全。另一种方法是使用authenticate header或保留查询字符串中的信息。我认为两者都不太安全,但可以使用。

现在,如果目标是防止免费用户下载两个文件并且需要等待第二个链接,您还可以通过将用户信息组合到某种哈希值来做出有根据的猜测是否是同一用户。EG 用户代理、IP 地址、位置。这不会 100% 准确,但可以让您了解一个没有会话的返回免费用户。

于 2013-05-13T10:32:57.797 回答