このように使用すると、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;