大家下午好,我读了很多关于 csrf 的文章,建议使用令牌来防止这种攻击: https ://learn.javascript.ru/csrf ,维基百科等。
但是什么是保护呢?如果用户登录到复杂的系统,比如网上银行,CSRF 的本质就在登录的复杂系统中。是什么阻止您获得正确形式的网上银行,从中提取必要的反 CSRF 令牌?
代码示例:
<form action="http://localhost/csrf/" method="GET">
New password:<br />
<input type="password" AUTOCOMPLETE="off" name="password_new"><br />
Confirm new password:<br />
<input type="password" AUTOCOMPLETE="off" name="password_conf"><br />
<br />
<input type="submit" value="Change" name="Change">
<input type="hidden" name='user_token' value='' />
</form>
<div id="token" style="display:none"><div>
<script type="text/javascript">
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET", "http://bank.com/", false);
xmlhttp.send();
var token = document.getElementById("token");
token.innerHTML = xmlhttp.responseText;
tokens = document.getElementsByName('user_token');
tokens[0].value = tokens[1].value;
</script>
那么什么是通证保护呢?
你还知道哪些保护方法?