質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

10409閲覧

laravelのcsrfが起動していない?

red13

総合スコア79

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2016/03/02 00:12

laravelのcsrfトークンを実装した場合に、直接URLを指定して遷移した場合に
トークンエラーが発生すると聞いています。

ローカル環境でaaa→bbb→cccという画面遷移を実装しています。
3つの画面全てに
<form~>
<input type="hidden" name="_token" value="{{ csrf_token() }}">

</form> のような実装をしています。 このような実装の場合にbbbやcccに直接遷移するとトークンエラーが発生せず 通常通りに画面が表示されます。 これはcsrfトークンの実装が誤っているのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

基本的にGETでリクエストが必要といえば、検索などでしょうか。

CSRF対策の理解をした方がいいかなと思います。CSRFの被害としては基本的に掲示板への意図しない書き込みだったり、意図してないうちに買い物がされていたりすることです。
これはiframeを利用したもので、基本的に上記のような書き込みや決済等はPOSTリクエストでされるものです。なのでGETリクエストにはCSRF対策がされてないのかと。

https://ja.wikipedia.org/wiki/クロスサイトリクエストフォージェリ

投稿2016/03/02 11:03

fagai

総合スコア2158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

red13

2016/03/03 01:15

登録時の対策なのですね。 GETしてINSERTされる場面等があれば必要そうですね。 現状、登録はPOSTでしかしていないため不要かもしれません。
guest

0

ベストアンサー

直接遷移ということはGETメソッドなのではないでしょうか。LaravelがCSRFチェックを自動的にやってくれるのはPOST,PUT,DELETEが対象でGETは対象外です。

You do not need to manually verify the CSRF token on POST, PUT, or DELETE requests. The VerifyCsrfToken middleware, which is included in the web middleware group, will automatically verify that the token in the request input matches the token stored in the session.

Laravelドキュメント - CSRF Protection

投稿2016/03/02 01:46

crhg

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

red13

2016/03/02 02:08

直接遷移した場合はGETですね。 GETが対象外だということは別方法でのチェックをしなければならないということですかね?
crhg

2016/03/02 02:48

もし必要ならそういうことになります。チェックを行っているのは vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php なので参考にするといいと思います。
red13

2016/03/02 04:00

ぱっと見てみましたが、よくわかりませんね。。。 もう少し調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問