CodeIgniter ユーザガイド 日本語版 Version 1.7.3


セキュリティ

このページではwebセキュリティに関する "ベストプラクティス" と、CodeIgniter の内部のセキュリティ機能の詳細について説明します。

URI セキュリティ

CodeIgniter では、悪意のあるデータがアプリケーションに渡される可能性を最小限にするため、URL文字列で使用できる文字列を厳しく制限しています。URI には次の文字だけを使用できます:

GET、POST、および クッキーデータ

単純に、システムが通例のクエリ文字列ではなくURIセグメントを利用可能にしているので、CodeIgniter では、GETメソッドでのデータ(クエリ文字列)の使用は許可されません (設定ファイルでクエリ文字列オプションを有効にした場合はこの限りではありません)。システムが初期化される過程で、グローバルなGET配列($_GET)は入力クラスによってクリアされます

Register_globals

$_POST および $_COOKIE 配列 以外の全グローバル変数は、システムが初期化されるときにクリアされます。このクリア処理はregister_globals = off と同等の効果を発揮します。

magic_quotes_runtime

magic_quotes_runtime ディレクティブは、データベースからデータを取得するときにスラッシュを除去する必要がないよう、システムが初期化されるときにOFFにされます。

ベストプラクティス

送信された POST データ、COOKIEデータ、URIデータ、XML-RPCデータあるいは、SERVER 配列($_SERVER)のデータでさえ、アプリケーションでデータを受け取る前に、次の3つのステップを実施することをおすすめします:

  1. 危険なデータをフィルタリングする。
  2. データが正しい型、長さ、サイズなどであることを確かめるため、検証を行う (ときどき、このステップはステップ1と置き換えられます)。
  3. データベースにデータを送信する前にエスケープ処理を行う。

CodeIgniter では、この処理を支援するため次の機能が利用できます: