設定ファイルでglobal_xss_filteringをTRUEに設定しました。特定のデータに対してxssフィルタリングを無効にすることは可能ですか? 'title'ポスト変数のxssフィルタリングを無効にしたいとします。特定の変数のグローバルフィーリングを無効にする
これは可能ですか?
設定ファイルでglobal_xss_filteringをTRUEに設定しました。特定のデータに対してxssフィルタリングを無効にすることは可能ですか? 'title'ポスト変数のxssフィルタリングを無効にしたいとします。特定の変数のグローバルフィーリングを無効にする
これは可能ですか?
私が知っている限り、あなたが作ることができる小さなハックがあります。 入力クラス(system/core/input.php)に行き、$ xss_cleanパラメータのデフォルト値を変更します。 これはFALSEに設定されているため、$ this-> input-> post()またはget()にTRUEを渡して変更することができます。
post()(input.phpの128行目)の例ですが、getにも適用する必要があります。
/**
* Fetch an item from the POST array
*
* @access public
* @param string
* @param bool
* @return string
*/
function post($index = NULL, $xss_clean = TRUE) // <-- Here I changed the default from FALSE to TRUE)
{
// Check if a field has been provided
if ($index === NULL AND ! empty($_POST))
{
$post = array();
// Loop through the full _POST array and return it
foreach (array_keys($_POST) as $key)
{
$post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean);
}
return $post;
}
return $this->_fetch_from_array($_POST, $index, $xss_clean);
}
ここで、グローバルフィルタリングをオフにします(FALSEに設定します)。さて、あなたの入力はautomaticlalyあなたは$this->input->post('title',FALSE).
あなたが代わりに(代わりのコアをハック)可能性があるように、コールの2番目のパラメータとしてFALSE指定を渡すように、ネイティブ入力ライブラリを拡張する場合を除き、フィルタリングされますこの線に沿って、TRUEの代わりにFALSE何か:
class MY_Input extends CI_Input {
function __construct()
{
parent::__construct();
}
//........
function get($index = NULL, $xss_clean = TRUE)
{
return parent::get($index, $xss_clean);
}
//...........
function post($index = NULL , $xss_clean = TRUE)
{
return parent::post($index, $xss_clean);
}
}
それは同じ方法で作業しなければならない、とあなたはそれを変更するコアファイル毎回をハックする必要はありません。
詳しい情報については、マニュアルのextending the coreページをお読みください。