在我的mysql数据库中限制每分钟搜索

时间:2016-04-30 16:08:57

标签: php security pdo

我有一个提供公共数据库的网站,可以通过简单的表格进行搜索。我正在使用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
}

1 个答案:

答案 0 :(得分:1)

实际上你不能从MySQL的设置中限制它。但你可以用PHP来避免它。你应该做的是为每个用户设置一个SESSION并设置一个名为“SearchTimes”的参数。如果5次停止搜索操作,则为每次搜索添加1。您可以通过IP地址阻止为其添加更多安全性。