当请求虚假请求发送到后端时停止提交
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 验证字段
我在这里遇到的问题是,当我向我的 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 验证字段