Если вы хотите изменить поведение по умолчанию метода post()
, вы можете расширить базовую библиотеку ввода или, если вам лень, вы можете просто изменить строку 278 (или около того) библиотеки ввода на следующее:
/**
* Fetch an item from the POST array
*
* @access public
* @param string
* @param bool
* @return string
*/
function post($index = '', $xss_clean = TRUE)
{
return $this->_fetch_from_array($_POST, $index, $xss_clean);
}
Единственное отличие состоит в том, что я изменил переменную $ xss_clean на TRUE
вместо FALSE
.Теперь вы можете отключить глобальную XSS-фильтрацию, и она будет автоматически фильтровать входные данные, если вы не укажете false в качестве второго параметра при вызове метода post()
библиотеки ввода.Только один метод - это метод get()
, и вы можете изменить его таким же образом.
Однако на вашем месте я бы просто расширил нативную библиотеку, потому что у вас есть хороший шанс »к тому времени, когда вы обновите CodeIgniter, вы забудете об этом, и вдруг вам будет интересно, почему вы подвергаетесь атаке XSS.Это будет выглядеть так:
class MY_Input extends CI_Input {
function My_Input()
{
parent::CI_Input();
}
function post($index = '', $xss_clean = TRUE)
{
return parent::post($index, $xss_clean);
}
}
Подробнее о расширении библиотек вы можете узнать здесь:
http://codeigniter.com/user_guide/general/creating_libraries.html