SHIRANGANA laravel 5.2 CSRF TOKENの仕組み 忍者ブログ
エンジニア日記
Admin / Write
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

図にまとめたので上げておきます。
要点は

・laravelのセッションはネイティブPHPのセッションを使っていない。
・cookieに設定される値は暗号化される。
・cookieに保存されるセッションid(laravel_session)とトークン(XSRF-TOKEN)はcookie名が違う。
・tokenはセッション作成時に発行され、regenerateしない限り不動。
・tokenをリクエストする方法は3通り(ヘッダ2パターン、パラメータ1パターン)ある。

というところあたりだと思います。

意外な落とし穴では

・cookieの暗号化はenvのAPP_KEYがsaltに使われているので変更すると複合できなくなる
・URL毎にlaravel_sessionにあたるcookie名を分けている場合、XSRF-TOKENも揃えないと意味がない
 (x-csrf-token, _tokenだけで制御されているなら不要ですが)
XSRF-TOKENのcookieの有効期限がなぜかソースに直書きになっているので
 期限を伸ばすならばオーバーライドが必要
    https://teratail.com/questions/27003

という点が挙げられます。

PR
この記事にコメントする
Name :
Title :
Mail :
URL :
Color :   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Comment :
Password :
HOME | 29  28  27  25  18  16  13 

忍者ブログ [PR]