我正在使用Symfony2并使用CSRF令牌保护我的表单 我有一个基于 Ajax 调用的评论系统。如果用户想要编辑他的评论,这就是正在发生的事情:
如果表单已经在加载的页面中并且无法通过ajax请求,则攻击者无法猜出CSRF令牌,但由于他可以请求表单,因此他可以获取令牌。
他不能......?
Dave 是我网站(www.acme.com
)中无辜的注册用户。
Dave 已登录我的网站,然后访问了www.evil.com
。他不知道,但当他访问evil.com
时,脚本被执行了
该脚本向www.acme.com/comments/123/edit
发送了一个ajax请求,并获得了编辑表单作为响应
然后用它的恶意内容填写该表单并提交该表单(再次使用ajax)。
邪恶的邪恶计划会起作用吗?
答案 0 :(得分:2)
据我所知,如果您的表单包含CSRF令牌字段,则没有风险。默认Symfony2 CSRF令牌取决于攻击者无法使用的会话(以及意图)。因此,当攻击者请求表单时,会使用攻击者(而非用户的)会话ID。