0

このように使用すると、URI / URLはCIでエスケープされますか?

function foo($url_arg)
$this->input->get('foo');
4

2 に答える 2

3

この例には、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フィルターを介して値を実行します。

于 2012-07-27T15:26:32.923 に答える
1

application / config / config.phpファイルを開き、次のように設定することで、csrf保護を有効にできます。

$ config ['csrf_protection'] = TRUE;

于 2016-03-30T10:48:09.543 に答える