我有一個應用程序,我想要使用安全令牌來實現對CSRF的保護,但是如果他打開一個新選項卡,也可以讓我的應用程序可用於同一用戶。如何使用多選項卡支持實現反CSRF令牌保護?
當用戶使用正確的用戶名/密碼組合認證自己時,我將其添加到會話並返回包含該令牌的cookie。當cookie到達時,我從cookie中刪除令牌並將其存儲在全局變量中。對於每個請求,我都會添加令牌並將其與服務器上的令牌進行比較。
問題是,當我打開一個新選項卡時,用戶會自動從會話中刪除,因爲收到了不包含正確標記的請求。
我明白,如果我將該標記存儲在cookie或localStorage中,我將能夠從另一個標籤中讀取它,並且請求將有效,但我不確定此實現有多安全,甚至不知道一個更好?用一個簡單的XSS,你可以從cookie/localStorage的/全局變量讀令牌......
是否有我可以實現一個CSRF令牌保護和仍然能夠從其他瀏覽器選項卡中使用我的應用程序的任何其他方式?
我不只是提交表單,我還在ajax背景中做了很多同步方法。 – 2015-02-24 11:56:37