如何防止对我的公共WCF soap服务进行任何可能的CSRF攻击?
我知道主要解决方案是使用CSRF令牌,但我如何实现这一目标?
希望有人给我一些想法,或者至少告诉我WCF不能被CSRF攻击。答案 0 :(得分:3)
是的,如果您有enabled AJAX support for your service,则CSRF适用于WCF。
一种快速简便的缓解方法是设置检查自定义标头,例如X-Requested-With
请求标头。如果没有启用CORS,则无法跨域传递这些头。
为了进一步加强此解决方案,您还可以为每个会话设置一个令牌,然后在标头中也传递它。见this answer。这将缓解浏览器插件(如Flash和Silverlight)中的漏洞,前者曾经遭受过一个错误,该错误允许跨域设置任意标头,否则不应允许。