我正在寫一個主要是ajax驅動的Web應用程序,我正在研究如何保護用戶免受CSRF攻擊。我打算運行用戶登錄的應用程序頁面,以HTTPS模式工作。HTTPS是否可以防止CSRF攻擊?
是否在HTTPS上運行頁面以防止CSRF攻擊?
我正在寫一個主要是ajax驅動的Web應用程序,我正在研究如何保護用戶免受CSRF攻擊。我打算運行用戶登錄的應用程序頁面,以HTTPS模式工作。HTTPS是否可以防止CSRF攻擊?
是否在HTTPS上運行頁面以防止CSRF攻擊?
不,在HTTPS上運行頁面並不能保護它免受CSRF攻擊。瀏覽器和服務器之間的通信被加密的事實與CSRF沒有關係。
我建議閱讀關於preventing CSRF的OWASP指導。
一般,金科玉律woule是:
永遠不要相信傳入的客戶端請求是合法的。始終保持懷疑態度,並假設該請求可能被惡意僞造。
很少有超越提到OWASP文章的具體規則:
如果您的數據需要認證/授權,避免在服務器上的通用接口,如CRUD接口。易於編碼,難以授權來自客戶的特定請求。而是提供一個SOA風格的接口,並提供專門用於特定用例的顯式方法,您可以直接控制請求及其參數。
即使框架提供了對請求有效性(ASP.NET視圖狀態)的一些控制,再次檢查是否該用戶被授權通過所述一組傳入參數。
視圖狀態?我的請求將轉到$ .ajax頁面,因此我無法將視圖狀態的數據用於回發。 – frenchie
這只是一個具體驗證機制的例子。 –
它CSRF(跨站請求僞造)不CSFR – CodesInChaos
@CodeInChaos:好,感謝編輯 – frenchie
請記住在開始有一點研究](http://en.wikipedia.org/wiki/Cross-site_request_forgery)瞭解導致此漏洞的原因。 – 2011-12-03 21:27:42