【发布时间】:2012-05-27 22:37:35
【问题描述】:
阅读OWASP CSRF prevention cheat sheet,提出的防止此类攻击的方法之一是同步器令牌模式。
如果会话令牌在密码学上很强大,它是否可以像下面的伪代码中描述的那样兼作 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,例如:将页面副本通过电子邮件发送给朋友。
【问题讨论】:
-
致整个页面:使用会话令牌作为 CSRF 令牌 will work 但暂时是 advised against by OWASP,因为存在攻击者可以通过以下方式获取用户的 CSRF 令牌的现实情况不允许允许他们直接获取会话令牌的漏洞。这种情况无论如何都是一件坏事——但如果你将会话令牌作为 CSRF 令牌重用,那么会话令牌当然也会受到损害,这更糟。
标签: javascript security web csrf