使用Webforms 4.5和以下链接中的代码来防止CSRF攻击。我们没有使用母版页,因此在Sitecore基础布局中包含相同的代码。
https://software-security.sans.org/developer-how-to/developer-guide-csrf
这似乎无法阻止CSRF攻击,就好像我们在站点外部有一个脚本,它能够将操纵数据发布到站点。我们已将视图状态(从网页复制)添加到此脚本中。
此CSRF防护代码将视图状态中设置的标记值与内存中变量进行比较。 但是,由于我们的脚本包含视图状态,它包含视图状态变量,因此当代码状态变量与内存变量匹配时,此代码不会产生错误。
我希望这段代码可以作为网页表单母版页的一部分......任何想法为什么它不能为我们工作?
答案 0 :(得分:0)
CSRF攻击是一种只写攻击。例如,
黑客发送了一百万封包含"图像的电子邮件"实际上链接到https://www.SomeBank.com/Transfer?Amount=1000&ToAccount=HackersAccount
百万封电子邮件中有百分比已开启
打开电子邮件的用户中有一部分也已登录www.Somebank.com
当图像被"检索到"电子邮件客户端实际上向银行网站发送请求并移动资金。请求成功,因为www.SomeBank.com
的cookie与请求一起被动发送。
CSRF令牌提供了一条未知且黑客无法识别的信息。如果收到没有令牌的请求,则拒绝转移。
如果黑客有权访问该页面,并且可以读取该令牌,则该机制不起作用,如您所见。当然,如果他有权访问该页面,那么你就会遇到更大的问题!