2017-07-08 27 views

回答

1

滾動的CSRF令牌總是一個糟糕的設計,因爲如果用戶打開了多個窗口,就會出現CSRF令牌當前有效的爭用條件。

實施任何安全系統時,請嘗試使用現有的庫或有據可查的技術。不要從臀部拍攝,請閱讀CSRF prevention Cheat sheet

旋轉的CSRF令牌不會提高安全性,因爲相同的旁路技術總是會獲得當前的CSRF令牌。所有CSRF緩解都依賴於Same-Origin Policy - 如果您的應用程序具有SOP旁路功能(例如弱crossdomain.xml文件或不安全CORS規則集或XSS),則攻擊者可以使用此漏洞讀取任何HTTP響應。對於任何給定的Web應用程序,某些HTTP響應必須具有CSRF標記,並且可以使用SOP旁路來讀取此標記並僞造瀏覽器和Web應用程序之間的交互。

使用何種類型的CSRF緩解無關緊要 - 總是可以使用XSS來強制瀏覽器執行用戶可以執行的任何操作。如果一個對反射式XSS易受攻擊的請求也需要一個CSRF令牌,那麼它將很難或不可能被利用。爲此,CSRF & XSS有一種岩石剪刀關係。

-1

如果您遇到防僞標記行爲方面的問題,您是否考慮過使用SameSite Cookie標誌?

長話短說。當您發送一個跨域請求時(例如,站點A向站點B發送請求),您的瀏覽器將足夠友好以檢查您是否擁有該站點的Cookie,因此,您可能容易受到XSRF攻擊。我們使用防僞令牌在發送請求的有效實體和服務器之間創建共享密鑰。但正如你所看到的,執行過程中可能會有一些問題。

另一方面,同一站點Cookie標誌允許您配置Cookie如何通過跨源請求發送。有兩種模式,嚴格模式和寬鬆模式。

在嚴格模式下,您的cookies永遠不會通過跨源請求發送。這似乎是一個很好的方法,但你也需要考慮到cookie不會通過GET請求發送,所以如果有人被重定向到你的站點,他將需要再次登錄,因爲cookie沒有被髮送請求。

寬鬆模式幾乎相同,但它允許您的cookie通過安全的HTTP動詞(GET,HEAD,OPTIONS和TRACE)發送,因此您可以防止POST/PUT CSRF攻擊,但是您用戶通過GET請求瀏覽仍然會有很好的行爲。

編輯:只要添加即使SameSite cookie標誌聽起來像是一個非常好的選項,它只能由Chrome和Opera實現,所以如果您的用戶羣是使用各種不同瀏覽器和不同瀏覽器的人版本,它可能不是您的應用程序的最佳選擇。

+0

-1 SameSite是一個RFC草案,它並不是所有瀏覽器都支持的,並且一年四季都沒有準備好生產。我將在常用的5年中刪除-1。 – rook

+0

@rook要給你這一點,我忘記澄清,至少現在,SameSite cookie標誌只被Chrome和Opera實現。 –

相關問題