我有一个动态 php 页面,它将用户选择的 pol 选项更新为 DB。有时我的 Apache 服务器仅通过调用此页面而超载(意味着有人正在使用脚本循环调用它)你能帮我防止这种情况吗?
我计划这样做:
- 对于内存缓存中的每个请求,我都会保留 no of request 作为计数器(键:md5(用户 Ip),值:计数器)
- 如果计数器在 10 秒内超过 10,我将阻止该用户。
但是将 IP 保留为密钥是行不通的,因为许多组织对其所有员工系统都使用单个互联网 IP。
与大多数民意调查一样,您需要一种方法来确保用户只能投票一次。有几种方法可以确保只投一票。
这完全取决于您要防止什么。如果它只是超载,但人们可以投票不止一次,那么你有更多的选择。如果您只想允许每个用户进行一次投票,那么只有注册系统是安全的。尽管当然有人可以创建一个以上的帐户。
虽然我通常讨厌 Captcha 的......你可以尝试在你的网站上实现一个。您甚至可以让 Captcha 仅在来自同一 IP 的 X 票后显示,这样公众甚至都不会看到它。