2011-06-20 10 views

答えて

1

私が知っている限り、あなたが作ることができる小さなハックがあります。 入力クラス(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ページをお読みください。

関連する問題