1

我正在使用 PHP 和 MySQL 来限制对未注册用户的下载访问。

我看到的唯一选项是 cookie 和/或 IP 地址。

Cookies 不是一个好的解决方案,因为重要的是用户不能通过删除他们的 cookie 来重置他们的下载计数 - 因为他们的想法是如果他们的使用量超过一定水平,他们就会付费。

这让我可以通过在 PHP 中记录 IP 地址并将其插入 MySQL 数据库来限制访问。传统上,这个问题是有些人使用动态/共享 IP,因此计数对他们毫无意义,甚至可能阻止其他潜在客户免费下载。

但话又说回来,几乎我所有的销售都来自西方国家,而且现在西方的大多数人似乎都使用静态 IP 地址……这是正确的吗?

解决这个困境的最佳方案是什么?有什么想法吗?

4

3 回答 3

2

您可以通过使用多种策略而不是仅使用一种策略来更好地识别唯一用户。结合 IP 地址、cookie 和浏览器的用户代理可以为您提供客户端的唯一密钥。我还建议嵌入一个 JavaScript 片段,将操作系统、屏幕大小等发送到服务器以与唯一用户相关联。

然后,您使用降级方法来规范访问。为您提供上述信息的所有访问权限的用户可以下载文件到他们的限制。限制 cookie、禁用 javascript 的用户对文件的访问更少。并且您将 IP 视为简单的用户唯一 ID。如果他们在共享网络上,那么对他们来说很难,他们应该启用 cookie。

对于具有滚动 IP 地址、禁用 cookie 和禁用 Javascript 的人。您实际上无能为力,但它们只代表一小部分用户。

cookie 不是识别某人的好方法,因为他们可以删除它,但它会为您节省一些数据库执行,以便仅查找 IP 和用户代理。所以更多的是速度。

于 2012-04-14T15:22:51.130 回答
2

这个对吗?

不。

您可以通过创建服务器端会话来解决这个难题。用户必须识别、登录。然后,您可以跟踪您需要跟踪的所有内容。

编辑:回顾一下:您希望客户端系统除了识别用户之外什么都不需要。您一次希望太多,显然您选择了错误的平台。

让我们更仔细地回顾一下:

  • 饼干:你不想要它们。
  • IP地址:就像关闭浏览器一样,切换IP很容易。你不想要那个。

现在让我想想还剩下什么?唔。出色地。没有什么?

您唯一能做的就是尝试组合尽可能多的识别元素,而不是让它们每个都需要,以便通过模式组合成有用且可行的识别用户的总和:

  1. 饼干
  2. 知识产权
  3. 标头
  4. 更多标题
  5. 推荐人

使用服务器端会话跟踪它。如前所述,如果你想开始构建复杂的东西,你需要 session。

于 2012-04-14T14:11:17.077 回答
0

要求您网站的访问者至少提供一封电子邮件或一些其他无法更改或留在客户端的信息。cookie,会话可以清除,ips 可能是动态的。

于 2012-04-14T15:11:56.750 回答