【发布时间】:2012-03-05 08:14:35
【问题描述】:
我正在创建一个同时具有评论和投票系统的网站。我想通过存储最后一个活动的时间戳来防止用户(或机器人)点击太多,如果最后一个活动少于 5 秒,我会向他们显示一条错误消息。目前我已经在 MySQL 数据库中实现了这个,但我在想,我可以把它移到会话中来提高性能。您认为哪种方法更好,为什么?另外,您还有哪些其他建议可以防止机器人向我的系统发送垃圾邮件/增加负载?
编辑: 现在我想多了一点,会话方法不够安全。 Cookie 也不是。机器人可以删除 cookie 并再次访问服务器。
【问题讨论】:
-
你想减少什么?投票滥用或服务器负载?
-
好吧,如果我可以在不需要访问数据库的情况下获得完全相同的结果,为什么不呢?
-
你想达到什么结果?
-
我想阻止用户快速投票(并滥用服务器)正如我的编辑所说,我认为 cookie 方法不够安全。
-
因此,将 IP 存储在数据库中是最可靠的解决方案。一旦您遇到任何性能问题,您可以将 ip 移动到一些基于 RAM 的存储中,例如 memcachedb