我正在使用Symfony2并使用 CSRF 令牌保护我的表单。
我有一个基于Ajax调用的评论系统。如果用户想要编辑他的评论,这就是发生的事情:
- 用户点击编辑按钮。
- 通过ajax 加载“新鲜”的评论编辑表单。
- 用户通过 ajax 编辑并提交表单。
- 编辑后的评论将作为响应发回。
通过 ajax加载“新”编辑表单是否存在安全风险?
如果表单已经在加载的页面中并且无法通过 ajax 请求,则攻击者无法猜测 CSRF 令牌,但由于他可以请求表单,因此他可以得到令牌..
他不能.. ?
也许一个例子会更清楚:
Dave是我网站上的无辜注册用户 ( www.acme.com
)。
Dave登录了我的网站,然后访问了www.evil.com
. 他不知道,但是当他访问时,evil.com
一个脚本被执行了。
该脚本发送了一个 ajax 请求www.acme.com/comments/123/edit
并获得了编辑表单作为响应。
然后它用它的恶意内容填写该表单并提交该表单(同样,使用 ajax)。
邪恶的邪恶计划会奏效吗?