php计时器只允许用户每两秒输入一次

dch*_*cke 5 php security jquery timer

我正在编写一个可以发布内容的网站.这适用于以下jQuery ajax:

    $.ajax({
        type: 'POST',
        url: 'action/post.php',
        data: 'posttext='+posttext+'&imageurl='+imageurl,
        success: function(feedback){
            $('#feedback').val(feedback);
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在我想知道:任何人都可以编写自己的ajax来向网站发布内容并一遍又一遍地执行此操作.我该如何防止这种情况?我确信我需要在post.php中进行某种安全检查 - 我已经听说过http referer,但是这可以修改,所以它不值得信赖.

另外我想在post.php中添加一个计时器,确保来自同一个ip地址的帖子每x秒只能发布一次,如果帖子发送到x秒以下,则会重置计时器(类似于堆栈溢出这是评论).

有谁知道如何保护ajax以及如何设置计时器?或者任何其他想法如何保护发布机制?

谢谢!

丹尼斯

Jef*_*ert 1

最好的方法是将您的信息存储在数据库中。一个表中可以有 4 个字段:

ipAddress, submitDate, postText, imageUrl
Run Code Online (Sandbox Code Playgroud)

提交后,检查数据库中是否有当前 IP 地址的条目。如果是这样,请将条目的提交日期与当前日期进行比较,如果超过阈值则允许提交。否则,发出错误消息并将用户重定向回来。

然而,这仍然不是万无一失的,因为 IP 地址也可能被欺骗,或者用户可能隐藏在代理后面。