1

我的网站的基本设置是:用户在主页上输入一条消息,点击回车,然后该消息通过 AJAX 请求发送到一个文件,该文件在该文件like.php中回显一个链接,该链接被发送回用户。

当用户按下回车键时,我已禁用输入,但没有什么能阻止用户不断地充斥like.php着 POST 请求并填满我的数据库。

SO上有人告诉我使用令牌系统,但没有提到如何使用。我之前已经看到过这样做,并且据我所知它是有效的。

我唯一的问题是如何like.php知道它是一个有效的令牌?我的代码目前是这样的:

$token = md5(rand(0, 9999) * 1000000);

和标记:

<input type="hidden" name="token" value="<?php echo $token ?>" />

它将like.php通过 POST 发送令牌。但是如何like.php知道这是一个有效的令牌呢?我应该改为标记与用户相关的东西吗?喜欢他们的IP地址吗?或者也许标记当前分钟并检查它是否是同一分钟like.php......

非常感谢对此 amtter 的任何帮助,谢谢。:)

4

3 回答 3

1

最好的方法是使用会话变量,因为用户不能像表单元素那样轻松地删除或修改它们。或者更好的是,将 IP 地址和时间存储在数据库中并查找它以查看用户是否可以再次发布。

于 2010-06-13T14:29:51.677 回答
1

不要重新发明轮子 - 只需查看该用户的最后评论时间,由 user_id,user_ip 定义,无论您拥有什么 - 并决定他是否允许发布。

于 2010-06-13T14:30:47.570 回答
1

对于大多数用户来说,一分钟似乎太长了等待。选项卡式浏览、宽带互联网服务和用户倾向于不阅读他们呈现的每一条文本都导致大量用户很可能会在不到一分钟的时间内无所事事地感到无聊。

我肯定会建议存储用户的 IP 地址。

于 2010-06-13T16:21:06.600 回答