目前我正在嘗試構建一個網站,它的後端和angularJS一樣纖細。因此我看了幾個教程和演示項目。這是最有趣的一個:https://github.com/alexdebril/slim-angularPHP Slim框架在每個連接上生成CSRF令牌
開箱,我有一個CSRF實施的問題。在這個項目中,CSRF保護在中間件中實現,以便應用於每個連接。好與不好無關。
但是,當我使用composer和npm安裝所有依賴關係時,該項目運行不正常,因爲每個服務器連接都會獲取將存儲在PHP會話中的新CSRF標記。
所以在這個項目的主頁面上有一個角度表單,它將用csrf標記將安全字符串發送到服務器。服務器然後只回答與相同的字符串和角度控制器打印出來。當我第一次觸發表單提交時,一切都會好起來的,但是在第二次提交時,服務器將響應錯誤400,因爲他有一個角度還沒有的新csrf標記。
但是這個示例項目的創建者不可能犯這樣的錯誤,他可以嗎?爲什麼我的apache爲同一用戶的每個連接創建一個新的csrf標記?我該如何解決這個問題?
我的依賴關係:
苗條\苗條v3.8.1
苗條\ CSRF v0.7.0
角v1.6.4(路線,詠歎調,材質,UI的自舉,餅乾,HTTP-AUTH-攔截器)
那麼我怎麼能爲每個用戶只有一個CSRF令牌?
或者我如何在angular中更新tokenizer服務以便始終使用最新的CSRF令牌?或者我需要一個觀察者?檢測這個?
slim-angular的文檔解釋瞭如何標記每個請求。參見[slim-angular Tokenizer Example](https://github.com/alexdebril/slim-angular#tokenizer)。 – georgeawg