csrf跨站請求僞造。
你們都知道,以前項目沒有使用先後端分離方案時,成熟的框架解決方案都是在form表單當中增長隱藏列,這樣每次提交時都會驗證 token ,使用一次後銷燬。例如:前端
<form action="//rasp.oneasp.com/account/modifyPassword"> <input .....> <input type="hidden" name="__token__" value="xxxxxxx"/> </form>
先後端分離狀況下,該如何實現呢?
很簡單,經過cookie,redis實現。
服務端提供一個接口(保證在同一域名下),生成_token_,將_token_寫入到redis和cookie。前端再調用接口的時候,要帶上這個token.使用一次後從redis中銷燬。redis
public function testAction(){ $_token_ = md5(uniqid()); ...#把token存入到redis當中 setcookie('_token_', $_token_, time()+(24*3600), '/'); return false; }
你們有什麼好的方案,能夠留言討論。後端