[FuelPHP]画面リロードや不正なフォーム登録を防ぐ

Posted 2012年2月10日 | Auther dada | Category PC・デジタル | Tag タグ: ,
Twitterにツイートする Facebookでシェアする はてなブックマーク

いわゆるCSRF対策のメモです。

Webでのデータ登録には
入力 → 確認 → 完了 という3つのフェーズで行うのが一般的です。

中でも最後の「完了」でデータ登録を行うことが多いため、
このページでリロードを行われると重複登録になったり、
前2フェーズを飛ばして不正なフォームをPOSTしてくるなどの
対策をする必要があります。

今まではセッションを使うなどして自前でコードを書く必要がありましたが、
FuelPHPでは Securityクラスを使うことで簡単に行えます。

確認画面のフォーム部分に下記を追加します。

echo Form::hidden( Config::get('security.csrf_token_key'), Security::fetch_token() );

下記のような隠し項目が書き出されます。

<input name="fuel_csrf_token" value="8af49a49ef926ca20fb713542c258fb4" type="hidden" id="form_fuel_csrf_token" />

そして登録を行うコントローラーで下記のように振り分けます。

if( !Security::check_token() ){
  // エラー表示
}else{
  // 正常なデータ登録
}

下記のサイトでは様々なセキュリティ対策について書かれてます。

関連する記事

1 Comment »

  1. […] [FuelPHP]画面リロードや不正なフォーム登録を防ぐ […]

    ピンバック by [FuelPHP]セッションをクッキーからファイルやDBに変更する 》 RuputerFan — 2012年2月10日 @ 4:32 AM

Leave a comment

カテゴリー