如果以下防止CSRF的方法有效,请告诉我.
>生成令牌并保存在服务器上
>通过cookie向客户发送令牌
>客户端上的Javascript读取cookie并在POST之前添加令牌到表单
> Server将表单中的标记与保存的标记进行比较.
任何人都可以看到通过cookie发送令牌并使用JavaScript读取而不是将其放入HTML中的任何漏洞吗?
最佳答案 同步器令牌模式依赖于将客户端上已知的随机数据与表单中发布的随机数据进行比较.虽然你通常会在页面渲染时从一个填充了令牌的隐藏表单中获取后者,但是通过使用JavaScript来填充它,我看不到任何明显的攻击向量.攻击站点需要能够读取cookie以重建由于跨域cookie限制而显然无法执行的post请求.
您可能会发现OWASP Top 10 for .NET developers part 5: Cross-Site Request Forgery (CSRF)有用(很多一般的CSRF信息),特别是关于跨源资源共享的部分.