我有一个提供公共数据库的网站,可以通过简单的表格进行搜索。我正在使用PDO进行查询 我试过谷歌,但我觉得我错过了正确的关键字来帮助自己。
我想限制每位用户每分钟进行5次搜索的搜索次数。以低成本完成这项工作的正确方法是什么?我不需要一个高安全性的解决方案,有些东西可以减慢一切有所帮助。
这有名字吗?我可以搜索什么?
// Create a session variable called something like this after you start the session:
$_SESSION['user_start'] = time();
// Then when they get to submitting the payment, just check whether they're within the 5 minute window
if (time() - $_SESSION['user_start'] < 300) { // 300 seconds = 5 minutes
// they're within the 5 minutes so save the details to the database
} else {
// sorry, you're out of time
unset($_SESSION['user_start']); // and unset any other session vars for this task
}
答案 0 :(得分:1)
实际上你不能从MySQL的设置中限制它。但你可以用PHP来避免它。你应该做的是为每个用户设置一个SESSION并设置一个名为“SearchTimes”的参数。如果5次停止搜索操作,则为每次搜索添加1。您可以通过IP地址阻止为其添加更多安全性。