HTML中ajax表单提交CSRF保护

HTML中ajax表单提交CSRF保护,第1张

除了检查被作为 POST 参数传递的 CSRF token 之外, VerifyCsrfToken 中间件也会检查请求标头中的 X-CSRF-TOKEN 。例如,你可以将其保存在 meta 标签中:

一旦你创建了 meta 标签,你就可以使用 jQuery 之类的函数库将 token 自动地添加到所有的请求头中。这简单、方便的为你的应用的 AJAX 提供了 CSRF 保护:

//html表单

<input id="a" name="a" type="text" />

<input id="b" name="b" type="text" />

//ajax 部分

$.ajax({

type:'POST',

cache:false,

url:"chuli.php",

dataType:"text",

data:{a:$('#a').val(),b:$('#b').val()},

})

//php chuli.php部分

cha($POST['a'],$POST['b'])

function cha($a,$b){

/*各种数据库连接代码*/

$sql=mysql_query("INSERT INTO fk VALUES ('$a','$b')")

}

ajax返回form表单 html js能执行的,可以利用纯js来提交:

1、ajax返回如下form,用创建来模仿:

function post(url, params) {

var tempForm = document.createElement("form")

tempForm.action = url

tempForm.method = "post"

tempForm.style.display = "none"

for (var x in params) {

var opt = document.createElement("textarea")

opt.name = x

opt.value = params[x]

// alert(opt.name)

tempForm.appendChild(opt)

}

document.body.appendChild(tempForm)

tempForm.submit()

return tempForm

}

2、定义提交form的参数:

function postParamAndOpenWindow(urlAndQuery){

// 分割url和请求参数

var pos = urlAndQuery.indexOf('?')

var url = urlAndQuery.substring(0, pos)

var query = urlAndQuery.substring(pos + 1)

// 动态建立Form中的数据

var tempForm = document.getElementById('tmpForm')

tempForm.action = url

tempForm.method = "post"

var pairs = query.split("&")

for(var i = 0i <pairs.lengthi++) {

var pos = pairs[i].indexOf('=')

if (pos == -1) continue

var argname = pairs[i].substring(0, pos)

var value = pairs[i].substring(pos + 1)

var opt = document.createElement("textarea")

opt.name = argname

opt.value = value

tempForm.appendChild(opt)

}

tempForm.submitBtn.click()

return tempForm

}

3、在页面调用的方法:

<a href="#" onclick="postParamAndOpenWindow("http://www.xxx.com/login?username=xxx&password=yyy')">


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6235432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存