【CakePHP】SQLサニタイズ 〜その1〜
バージョン:CakePHP 2.x
「Sanitize」はユーザから送信された不正なデータ(悪意があるデータ)などを無害化するためのクラスです。
ユーザから送られたデータについては、基本的には「Sanitize」を使用しておいた方が良いと思います。
「Sanitize」はCakePHPのコアライブラリなので、どこからでも利用することができます。
コントローラやモデルで使うことが多いかと思います。
基本的な使い方は、下記の通りです。
App::uses('Sanitize'); class MyController extends AppController { public function index($param) { $param = Sanitize::clean($param); } }
また、オプションを使用することもできます。
App::uses('Sanitize'); class MyController extends AppController { public function index($param, $options) { $param = Sanitize::clean($param); } }
オプション名 | デフォルト | 説明 |
---|---|---|
connection | default | データソースコネクション名 |
odd_spaces | true | 「0xCA」を含むおかしなスペースを、標準的な半角スペースに置換するか |
encode | true | HTMLの特殊文字をエンティティ化するか |
dollar | true | ドルマークをエスケープするか |
carriage | true | キャリッジリターンを削除するか |
unicode | true | ユニコードをエスケープするか |
escape | true | escapeメソッドを使用するか |
backslash | true | ユーザが入力したバックスラッシュを、信頼できるバックスラッシュに置き換えるかどうか |
remove_html | false | HTMLタグを除去するか |
詳しくは公式サイトをご覧下さい。