dav*_*vid 26 javascript security csrf csrf-protection
我已经阅读了CSRF以及如何使用不可预测的同步器令牌模式来防止它.我不太明白它是如何工作的.
我们来看看这个场景:
用户使用以下格式登录网站:
<form action="changePassword" method="POST">
<input type="text" name="password"><br>
<input type="hidden" name="token" value='asdjkldssdk22332nkadjf' >
</form>
Run Code Online (Sandbox Code Playgroud)
服务器还将令牌存储在会话中.发送请求时,它会将表单数据中的标记与会话中的标记进行比较.
当黑客可以编写以下代码的JavaScript代码时,如何防止CSRF:
我错过了什么?
Que*_*tin 15
攻击者无法使用JavaScript从站点读取令牌,因为它将是跨源请求,并且相同原始策略(MDN,W3C)会阻止(默认情况下)对其中的数据的访问.
以此为例:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://google.com");
xhr.addEventListener('load', function (ev) {
console.log(this.responseText);
});
xhr.send();
Run Code Online (Sandbox Code Playgroud)
JS控制台报告:
XMLHttpRequest无法加载
http://google.com/
.Access-Control-Allow-Origin
请求的资源上没有" 标题".
归档时间: |
|
查看次数: |
5246 次 |
最近记录: |