阅读OWASP CSRF 预防备忘单,提出的防止此类攻击的方法之一是同步器令牌模式。
如果会话令牌在密码学上很强大,它是否可以像下面的伪代码中描述的那样兼作 csrf 令牌?
客户:
<script>
dom.replace(placeholder, getCookie("session-cookie"))
</script>
<form>
<input type="hidden" name="csrf-cookie" value="placeholder-value"/>
<input type="text" />
</form>
服务器:
if(request.getParameter("csrf-cookie") != user.getSessionCookie())
print "get out you evil hacker"
cookie 在页面加载时使用 javascript 设置,以防止用户在例如通过电子邮件将页面副本通过电子邮件发送给朋友时意外泄露会话 cookie。