我的网站的基本设置是:用户在主页上输入消息,点击进入,消息通过AJAX请求发送到名为like.php
的文件,其中echo是一个被发送回用户的链接
当用户按下回车键时,我已经禁用了输入,但是没有什么能阻止用户不断地使用POST请求充满like.php
并填满我的数据库。
有人告诉我使用令牌系统,但没有提到如何。我已经看到这是在我知道它有效之前完成的。
我唯一的问题是like.php
将如何知道它是有效的令牌?我的代码目前是这样的:
$token = md5(rand(0, 9999) * 1000000);
和标记:
<input type="hidden" name="token" value="<?php echo $token ?>" />
将通过POST将令牌发送到like.php
。但like.php
将如何知道这是一个有效的令牌?我应该代替与用户相关联的东西吗?喜欢他们的IP地址?或者或许标记当前分钟并检查它是like.php
...
非常感谢任何关于这个问题的帮助,谢谢。 :)
答案 0 :(得分:1)
最好的方法是使用会话变量,因为用户不能删除它们或像表单元素一样轻松地修改它们。或者更好的是,将IP地址和时间存储在数据库中,然后查看用户是否可以再次发布。
答案 1 :(得分:1)
不要重新发明轮子 - 只需查看此用户的最后评论时间,由user_id,user_ip定义,无论您拥有什么 - 并决定是否允许发布。
答案 2 :(得分:1)
对于大多数用户来说,一分钟似乎是一段时间太长而无法等待。标签式浏览,宽带互联网服务和用户tendency to not read every piece of text they're presented都会导致大量用户在不执行任何操作后很可能会感到无聊。
我肯定建议存储用户的IP地址。