我想在我的网站上实现一项限制访问某个页面的功能。
每个IP应允许每天2次访问。
我正在考虑创建一个mysql表并在ip +中写入ip访问该网站,然后创建一个每24小时删除所有条目的cron作业。
但是我担心他的服务器负载可能太大(如果我每天进行几次访问)。是否有更好或更简单的方法来限制每个IP的每日访问次数?
我还在考虑使用cookie或会话,但我有0个关于如何创建一个可以完成我需要的工作的cookie的计划....
我感谢任何建议!
编辑:
在有用的评论之后,我还需要一些建议:
- 公共代理检测脚本是否足以至少保留匿名和网络代理?
- 是否可以单独限制每个IP的访问权限并创建一个脚本,这将在首次访问后的24小时内删除IP的条目?无论访问者第一次来到我的网站,而不是让cron作业每24小时删除一次所有数据?
答案 0 :(得分:2)
保存ip,访问数据库的时间和次数没问题,几百行对于mysql数据库来说不是问题(不要忘记在表上设置索引)。
但请注意,拥有共享IP的用户可能无法访问您的网页。
使用cookie是有问题的,因为用户可以控制它,你不能限制它。当然,这取决于您的应用程序阻止用户事后 n 访问的重要性。
答案 1 :(得分:2)
会话和/或Cookie不是最安全的解决方案:
你的想法似乎并不那么糟糕;如果你每天只有几百次点击,它应该处理负载,我想 - 只需在MySQL表上使用正确的索引,以帮助你做的选择来检查IP是否已经存在
但请注意,您可以使用相同的IP地址拥有多个用户 - 例如,同一公司中的所有人通常共享相同的IP。