通过IP限制访问,cookie? - 更好的解决方案?

时间:2012-04-14 14:08:49

标签: php mysql

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

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

Cookie不是一个好的解决方案,因为用户无法通过删除Cookie来重置下载次数非常重要 - 因为他们认为如果用户的使用率高于某个级别就会付费。

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

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

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

3 个答案:

答案 0 :(得分:2)

  

这是正确的吗?

没有

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

编辑:回顾一下:您希望客户端系统根本不需要任何内容​​,只需识别用户。你马上想要太多,显然你选择了错误的平台。

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

  • Cookies:你不想要它们。
  • IP地址:就像关闭浏览器一样,切换IP很容易。你不希望这样。

现在让我想想剩下的是什么?嗯。好。什么?

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

  1. 缓存
  2. IP
  3. 接头
  4. 更多标题
  5. 引荐
  6. 使用服务器端会话跟踪它。如上所述,如果你想开始构建复杂的东西,你需要会话。

答案 1 :(得分:2)

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

然后使用降级方法来管理访问。向您提供上述信息的所有访问权限的用户可以将文件下载到他们的限制。限制cookie的用户,禁用javascript可以减少对文件的访问。而且,您只需将IP作为用户的唯一ID即可。如果他们在共享网络上,那么对他们来说很难,他们应该启用cookie。

对于拥有滚动IP地址,禁用Cookie和禁用Javascript的用户。你可以做的并不多,但它们只代表了一小部分用户。

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

答案 2 :(得分:0)

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