啓用silverlight的WCF服務通信使用USB令牌/智能卡進行保護。第一次訪問必須通過輸入PIN來確認。一旦通過身份驗證,惡意網站就可以使用IMG-Tags和/或JavaScript向WCF服務啓動CSRF請求。根據Security Guidance for Writing and Deploying Silverlight Applications,這裏常用的技術是使用(session-)令牌或所謂的「nonce」,同時檢查HTTP Referrer頭已被證明是不安全的。爲啓用silverlight的WCF服務防止CSRF(或跨網站請求僞造/ XSRF)
我理解這個背後的想法,根據我的理解,如果您有單一表單(即聯繫表單)和單一服務,您可以確保用戶在發送之前必須查看並填寫表單,那麼這種方式非常有效。在Silverlight應用程序中,我無法預先定義這種類型的序列,因此可以以任意順序啓動許多請求(如請求產品的價格更新)。
您是否有一些建議,我應該如何保護Silverlight到WCF通信以防止CSRF攻擊,確保來自可信站點的已經過身份驗證的呼叫者請求?
感謝您的建議。我看到攻擊者可以以某種方式讀取發送的消息(因爲Silverlight不支持基於消息的安全性)並讀取隨機數的問題。由於我們會重複使用同一個隨機數來處理多個請求(這就是我理解你的建議的方式),所以他仍然可以使用被盜現象來僞造一個請求。對於我猜測的每個請求,隨機數應該是有效且唯一的? – thmshd
您是否可以在Silverlight應用程序和WCF服務之間使用SSL,因此消息在路上不會被盜用? – Erlend