如何防止對我的公共WCF soap服務的任何可能的CSRF攻擊?阻止對WCF服務的CSRF攻擊
我知道主要的解決方案是通過使用CSRF令牌,但我怎麼能實現呢?
希望有人給我的想法,或者至少告訴我,WCF不能被CSRF攻擊。
如何防止對我的公共WCF soap服務的任何可能的CSRF攻擊?阻止對WCF服務的CSRF攻擊
我知道主要的解決方案是通過使用CSRF令牌,但我怎麼能實現呢?
希望有人給我的想法,或者至少告訴我,WCF不能被CSRF攻擊。
是的,CSRF適用於WCF,如果您有enabled AJAX support for your service。
緩解的一種快速而簡單的方法是設置檢查自定義標題,如X-Requested-With
請求標題。如果未啓用CORS,則這些標題無法傳遞到跨域。
爲了進一步加強此解決方案,您還可以設置每個會話的令牌,然後將其傳遞到頭中。見this answer。這將減輕瀏覽器插件(如Flash和Silverlight)中的漏洞,前者之前曾遭受過允許跨域設置任意頭部的錯誤,否則應該不允許該錯誤。
謝謝,但是如果我不使用AspNetCompatibility模式,並且我不需要會話,我該如何應用每個會話的令牌? –
請問您能否通過您的應用程序和體系結構的更多細節更新您的問題?例如什麼是你的服務的客戶端,因爲非web瀏覽器不需要CSRF保護,並且如果不使用會話,那麼爲什麼你需要CSRF保護? – SilverlightFox
實際上,我的服務的想法是公開分隔的服務,請求跨越不同的域,所以每個應用程序都會要求通過Soap Header可能發送的用戶名和密碼連接到此服務。所以沒有會議在這裏適用。 –
WCF服務在瀏覽器中無法使用。因此,這種攻擊沒有發生。 –
@TomRedfern:不是這樣的:https://msdn.microsoft.com/en-us/library/bb924552(v=vs.110).aspx – SilverlightFox
@SilverlightFox - 我似乎會糾正! –