このように使用すると、URI / URLはCIでエスケープされますか?
function foo($url_arg)
$this->input->get('foo');
このように使用すると、URI / URLはCIでエスケープされますか?
function foo($url_arg)
$this->input->get('foo');
この例には、2つの異なるタイプの入力が含まれています。URIセグメント(に渡される引数foo())と、という名前のGET配列アイテムfooです。
URIクラスには、ご想像の_filter_uriとおり、URIのフィルタリングを処理するというプライベートメソッドが含まれています。$config['permitted_uri_chars']まず、にあるアイテムをチェックし、config.phpそこに定義されていない文字を削除します。ただし、そこで定義されている内容に関係なく、次のことも実行します。
// Convert programatic characters to entities
$bad = array('$', '(', ')', '%28', '%29');
$good = array('$', '(', ')', '(', ')');
return str_replace($bad, $good, $str);
詳細については、URIクラスのソースを確認してください。
GET配列項目に関して、$config['allow_get_array'](ここでも、にあるconfig.php)がに設定されているFALSE場合、GET配列は完全に破棄されます。$this->input->get('foo')、デフォルトでは、「英数字(およびその他のいくつかの)文字のみ」を許可します。の2番目のパラメーターTRUEが含まれている場合、CodeIgniterはXSSフィルターを介して値を実行します。
application / config / config.phpファイルを開き、次のように設定することで、csrf保護を有効にできます。
$ config ['csrf_protection'] = TRUE;