gpt4 book ai didi

javascript - Xhr 多个请求

转载 作者:行者123 更新时间:2023-11-28 03:58:20 25 4
gpt4 key购买 nike

我已编辑我的任何旧问题

这段代码是我写的。

<!DOCTYPE html>

<html>
<center><h1>csrf testing</h1 >
<form action="">
<input type="submit" onclick="" value="go">
</form>


<script>
var params = "email=nlkm&username=asc&csrf_token=&go=go";

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function(){
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200 ){

var xhr2 = new XMLHttpRequest();
xhr2.open("POST", "useredit.php", false);
xhr2.setRequestHeader("Content-Type", "x-www-form-urlencoded");
xhr2.send(params);


}
};
xhr.open("GET", "useredit.php", false);
xhr.send();
</script>


</html>

现在的问题是,当我的第二个请求启动时,响应与第一个请求的响应相同。使困惑?好的,**我有一个提交一些参数和 csrf token 的表单。

现在,在该代码上,有两个请求**第一个是用户编辑页面上的 GET 请求,第二个是 POST 请求,该请求提交用户编辑页面上的表单以及表单的响应将在同一页面上产生结果。

现在,当我通过此代码提交表单而不提供 csrf token 时,响应与我对第一个请求的响应相同。 它应该响应 token 无效,但事实并非如此。

那么这里有什么问题呢?希望你现在明白了吗?

最佳答案

在查询字符串中添加引号。

$sql2 = "SELECT * FROM userinfo WHERE email ='".$_GET['userid']."'";

因此,如果 $_GET['userid'] == "someuser@example.com",则 $sql2 的值将为:

"SELECT * FROM userinfo WHERE email ='someuser@example.com'"

输入值用引号引起来。

在您的版本中,该值将是:

"SELECT * FROM userinfo WHERE email =someuser@example.com"

这是无效的 SQL。

关于javascript - Xhr 多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47368356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com