新サイトへ移転しました
約3秒後に自動的にリダイレクトします。
どうするか
jQueryを用いている場合、以下のように記述すると良い。PHP側は特に特別な記述はなく、普通にSESSION変数を使用できる。
- 変更前(SESSION情報維持できない)
$.ajax({ url: "hogehoge.php", type: "POST", data: { "foo" : "bar" }, success: function(json_result) { // 中略 }, error: function() { // 中略 }, complete: function(() { // 中略 } });
- 変更後(SESSION情報維持できる)
$.ajax({ url: "hogehoge.php", type: "POST", data: { "foo" : "bar" }, beforeSend: function(xhr) { xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); }, success: function(json_result) { // 中略 }, error: function() { // 中略 }, complete: function(() { // 中略 } });
追加した部分が何を意味するか
セキュリティに関することなので、この部分は理解しておきたいのだけど、まだまだ及ばない。
- CSRFという攻撃がある。
- CSRF攻撃に対する策として、GET以外のメソッドでデータを送信する際にはトークンが必要である。
- 「xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));」の部分でそのトークンを発行している。
上記は間違っている可能性があるので、調べたら、随時追記・修正する。
以下に説明してくれているサイトをメモする。