当请求虚假请求发送到后端时停止提交

Stopping a submit when a request fake request is sent to the backend

我在这里遇到的问题是,当我向我的 PHP 后端发送带有参数的请求时,它会充当表单已提交并发送错误的提交。我使用AJAX与前后端通信,我使用的代码是:

$(document).ready(function () {
    $("#submitmsg").click(function () {
        var usrmsg = $("#Text").val();
        var username = localStorage.getItem("user")
        $.post("send.php", { text: usrmsg,user: username,},
            function(result){ });
        $("#Text").val("");
        return false;
   });
});

在我的后端,它获取请求的地方是

$username = $_POST['user']; 
$text = $_POST['text'];

这将阻止Cross-Site 脚本

当您的页面加载时,将令牌保存在会话/cookie/数据库中。

$_SESSION['token'] = md5(uniqid(mt_rand(), true));

在您的 AJAX 调用中将相同的令牌传递给 send.php:

{ text: usrmsg,user: username, token: token_generated }

在 send.php 中检查标记是否匹配

if ($_POST['token'] != $_SESSION['token']) exit();

或者,如果您唯一的音乐会是假提交,请尝试验证码。

您还可以在通过 AJAX.

发送之前使用 Javascript 验证字段