[Codeigniter-users] クロスサイトリクエストフォージェリ (CSRF)のエラー処理

Back to archive index

戸田 広 info****@sciss*****
2012年 2月 24日 (金) 01:13:55 JST


こんばんは、戸田です。

結論から言いますと、この機能のエラー画面は
applications/errors/error_general.php で固定になっています。

これ以外の、自分なりのCSRF保護専用のエラー画面を定義したい場合は、
例えば system/core/Common.php の show_error() の引数で
任意のviewファイル名を指定できるようにした上で、
system/core/Security.php の csrf_show_error() の中の処理で
定義したいviewファイル名を指定する、などの
カスタマイズが必要かと思います。

私はまだこの機能を活用したことがありませんが、
試したときは、ちゃんとエラーになりました。
たしか、フォームヘルパーの form_open() を使ったときに
自動的にトークンの入ったhiddenフィールドが追加になる、
といった仕掛けだったように記憶しています。
フォームのある画面で、自動的に
name が $config['csrf_token_name'] で指定したものと一致する
hiddenフィールドが作られてないか、確認してみてください。



以上です。




On 2012/02/24, at 0:17, 前田 政彦 wrote:

> 毘政です。
> 
> クロスサイトリクエストフォージェリ (CSRF)について、ご存知の方がいらっしゃ
> いましたらお教えください。
> 
> これを使用するには、下記のようにすれば良いのはわかります。
> $config['csrf_protection'] = TRUE;
> 
> しかし、これで、自動に照合して異なっていればエラーになるとの事ですが、エ
> ラー画面は、どのように定義するのでしょうか?
> 
> CodeIgniter 2.0に追加されたCSRF保護オプションの挙動
> http://www.e2esound.com/wp/2011/02/14/csrf_options_in_codeigniter_2/
> 「このチケットの照合作業は自動で行われる為、controllerに何かを記述することはありません。」
> とありましたので、試してみましたが、チェックをしてエラーにしてくれていな
> いようです。
> 
> ほんとに、何も記述することなくエラーになるのでしょうか?
> 
> 日本語言語パック All in One パッケージ (CodeIgniter 2.0.3)で、試作してお
> ります。
> 
> 
> -- 
> 毘政 <besei****@r5*****>
> 
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index