以REST API作爲後端,由JWT授權來響應前端,但是如何處理會話?例如,登錄後,我從REST獲取JWT令牌,如果我將它保存到localStorage,我很容易受到XSS的影響,如果我將它保存到Cookies,只有在不設置HttpOnly時纔會出現同樣的問題,但反應無法讀取HttpOnly Cookie(我需要閱讀cookie以從中獲取jwt,並使用此jwt與其餘請求),我也沒有提到CSRF問題,如果您使用REST作爲後端,則無法使用CSRF標記。React前端和REST API,CSRF
因此,與REST的反應似乎是不好的解決方案,我需要重新思考我的架構,如何成爲?是否有可能爲您的用戶提供安全的反應應用程序?在REST API方面處理所有業務邏輯,而不用擔心丟失數據?
更新:
據我瞭解,有可能做到這一點:
- 陣營使得AJAX調用REST API
- 陣營從REST
- 得到JWT令牌React寫入httponly Cookie
- 因爲反應無法讀取httponly cookie,所以我們在我們需要證書的所有REST調用中按原樣使用它ication
- REST上的調用檢查XMLHttpRequest的頭,什麼是某種CSRF保護
- REST側支票餅乾,從中讀取JWT和做的東西
我有缺乏理論知識,在這裏,但看起來邏輯和相當安全,但我仍然需要回答我的問題並批准這個「工作流程」。
首先..如果您正在使用JWT令牌進行身份驗證,那麼爲什麼您甚至想在前端讀取該令牌?它應該是僅限http和安全....第二..非常有可能在REST中使用CSRF令牌。作爲參考你可以檢查OWASP的指南。希望這將有助於https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet –
@TasmineRout,但我怎麼可以在後端閱讀它?例如,我獲取休息api來獲得智威湯遜,我怎麼能讀取並保存它不在前端? – MyMomSaysIamSpecial
此外,據我瞭解你對CSRF的回答,有可能通過檢查XMLHttpRequest頭來「確保」你的請求和響應?還有人說你可以添加自己的頭文件並在請求中檢查它,但爲什麼它是安全的?爲什麼黑客無法修改他的請求標題並通過我的支票? – MyMomSaysIamSpecial