限制每日访问

时间:2011-03-20 12:17:17

标签: php mysql session cookies ip

我想在我的网站上实现一项限制访问某个页面的功能。

每个IP应允许每天2次访问。

我正在考虑创建一个mysql表并在ip +中写入ip访问该网站,然后创建一个每24小时删除所有条目的cron作业。

但是我担心他的服务器负载可能太大(如果我每天进行几次访问)。是否有更好或更简单的方法来限制每个IP的每日访问次数?

我还在考虑使用cookie或会话,但我有0个关于如何创建一个可以完成我需要的工作的cookie的计划....

我感谢任何建议!

编辑:

在有用的评论之后,我还需要一些建议:

- 公共代理检测脚本是否足以至少保留匿名和网络代理?

- 是否可以单独限制每个IP的访问权限并创建一个脚本,这将在首次访问后的24小时内删除IP的条目?无论访问者第一次来到我的网站,而不是让cron作业每24小时删除一次所有数据?

2 个答案:

答案 0 :(得分:2)

保存ip,访问数据库的时间和次数没问题,几百行对于mysql数据库来说不是问题(不要忘记在表上设置索引)。

但请注意,拥有共享IP的用户可能无法访问您的网页。

使用cookie是有问题的,因为用户可以控制它,你不能限制它。当然,这取决于您的应用程序阻止用户事后 n 访问的重要性。

答案 1 :(得分:2)

会话和/或Cookie不是最安全的解决方案:

  • 会话过了一段时间(通常是半小时,默认设置)
  • Cookie可以被用户删除;或者他可以改变浏览器


你的想法似乎并不那么糟糕;如果你每天只有几百次点击,它应该处理负载,我想 - 只需在MySQL表上使用正确的索引,以帮助你做的选择来检查IP是否已经存在


但请注意,您可以使用相同的IP地址拥有多个用户 - 例如,同一公司中的所有人通常共享相同的IP。