2013-03-10 2 views
1

Я начинающий разработчик codeigniter и нуждаюсь в вашей помощи. У меня есть форма, которая передается функции в контроллере, и я хочу применить правила библиотеки form_validation для данных сообщения, полученных из формы. Все, что мне нужно знать, это: Переключатель $ config ['global_xss_filtering'] в классе ввода выполняет ту же работу, что и правило xss_clean в классе form_validation?Разница xss чистая и глобальная фильтрация xss

+0

Получаете ли я тот же результат, если я включил переключатель? – goseo

ответ

2

Да, это то же самое. Если вы включили $ config ['global_xss_filtering'] через конфигурационный файл, вам не нужно вызывать xss_clean в валидации формы,

, но если вы отключили $ config ['global_xss_filtering'], вы должны вызвать xss_clean в форме проверки, а также вы должны добавить дополнительный параметр (ИСТИНА или ЛОЖЬ) в функции ввода-> пост, а также для фильтрации xss. Смотри ниже.

$name = trim($this->input->post('name',TRUE)); 

Это будет полезно, если вы используете редактор WYSIWYG в вашем приложении, то вы должны выключить $ конфиг [ «global_xss_filtering»], и вы должны пройти дополнительный параметр в> после вход-функции, как и выше, TRUE - для включения фильтрации и FALSE для отключения (везде, где вы используете редактор WYSIWYG).

+1

Хотя результат тот же, стоит отметить, что 'global_xss_filtering' изменяет фактический массив' $ _POST', когда 'CI_Input' создается, а' $ this-> input-> post ('name', TRUE) 'does not измените массив '$ _POST'. Если в какой-то момент вы осознаете, что вам нужна одна переменная, чтобы не применять фильтрацию XSS, вам может потребоваться внести некоторые изменения в код, чтобы получить ее. Лучше всего отключить 'global_xss_filtering' и перегрузить' CI_Input :: post() ', чтобы' $ xss_clean' по умолчанию 'TRUE' вместо' FALSE', а затем всегда получал переменные '$ _POST' через' CI_Input :: post() '. –

+0

Хотя этот ответ довольно старый. Пожалуйста, объясните, почему мы должны отключить фильтр xss для редактора wysiwyg. Также для этого случая, почему мы не можем использовать xss_clean, в этом случае также $ this-> form_validation-> set_rules ('description', 'description', 'required | xss_clean '); (неверно) $ this-> form_validation-> set_rules ('desc', 'desc', 'required'); (верный) – vishal

Смежные вопросы