php - 快速简便的防洪措施?

标签 php protection spam

我有一个网站,用户使用 AJAX 向名为 like.php 的文件提交消息。在此文件中,用户消息被提交到数据库,然后它向用户发送回链接。在我的 Javascript 代码中,我禁用了用户在提交 AJAX 请求时输入的文本框。

唯一的问题是,恶意用户可以不断地向 like.php 发送 POST 请求并淹没我的数据库。所以我想实现简单的防洪。

我真的不希望另一个数据库表记录用户 IP 等的麻烦......就好像它们正在淹没我的网站一样,大量的数据库读/写会减慢它的速度。我考虑过使用 session ,比如有一个包含时间戳的 session ,每次他们将数据发送到 like.php 时都会检查该时间戳,如果当前时间早于时间戳,则让他们将数据添加到数据库,否则发出错误并阻止它们。如果允许他们向数据库中输入某些内容,请使用新的时间戳更新他们的 session 。

你怎么看?这是解决问题的最佳方法还是有更简单的替代方法?

感谢您的帮助。 :)

最佳答案

Session 最容易做到这一点,开销也最少。您可以在 session 中存储两位数据,最后一个帖子的时间戳,帖子来自的 ip。下面是检查合法性的方法:

session_start();
if(isset($_SESSION['ip']) && $_SESSION['last_post'] + MININTERVAL < time()) die('too early');

$_SESSION['last_post'] = time();
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
// store the message

关于php - 快速简便的防洪措施?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3026640/

相关文章:

php - routes.php 中的 Codeigniter URL 问题

PHP YII 2 为什么当我添加新页面时,它没有显示任何内容?

php - 从 Php session 获取数据

android - Android如何防止用户提取应用程序的APK?

.net - 如何在企业环境中保护专有软件?

machine-learning - 垃圾邮件检测中精确率和召回率的混淆

python - 在电子邮件 Python 中嵌入图像

php - getcwd 和 __DIR__ 有什么区别?

php - 我的管理控制面板是可破解的,我不知道为什么

email - 从自定义域发送到 gmail 的邮件将变成垃圾邮件