當應用程序依賴無狀態身份驗證(使用類似HMAC)時,是否有必要使用CSRF保護?使用無狀態(= Sessionless)身份驗證時需要CSRF令牌嗎?
例子:
我們已經有了一個單頁的應用程序(否則我們不得不追加每條鏈路上的標記:。
<a href="...?token=xyz">...</a>
用戶驗證自己使用
POST /auth
身份驗證成功服務器將返回一些令牌令牌將通過JavaScript存儲在單個頁面應用內的某個變量中
此令牌將用於訪問受限制的URL,如
/admin
。令牌將始終在HTTP頭中傳輸。
沒有Http Session,也沒有Cookies。
據我瞭解,應該有(?!)是沒有可能利用跨站攻擊,因爲瀏覽器不會存儲令牌,因此它不能自動將其發送到服務器(這是使用Cookies/Session時會發生什麼)。
我錯過了什麼嗎?
請注意基本身份驗證。許多瀏覽器會自動發送會話剩餘部分的基本身份驗證標頭。這可以使基本身份驗證容易受到CSRF作爲cookie身份驗證的影響。 – phylae