CodeIgniter: $ _POST уже чист для ввода в БД? - PullRequest
1 голос
/ 26 марта 2010

Это мое первое приложение с CI, и я хочу знать, чист ли $ _POST и могу ли я напрямую вставить данные в db?

Я включил $config['global_xss_filtering'] = TRUE;

Спасибо.

Ответы [ 5 ]

11 голосов
/ 26 марта 2010

Нет, но $ this-> input-> post () , вызванный без параметров, вернет все элементы, прошедшие через фильтр XSS.

Кроме того, если вы используете его, документация ActiveRecord для codeigniter гласит следующее:

Это также позволяет для более безопасных запросов, так как значения экранированы автоматически системой .

2 голосов
/ 26 марта 2010

Если вы используете Активную запись CodeIgniter для доступа к базе данных, вам не нужно беспокоиться об экранировании значений, так как он позаботится об этом за вас.

1 голос
/ 26 марта 2010

Нет, потому что SQL состоит из довольно стандартных буквенно-цифровых символов ( документация ). Вы должны как минимум ввести свои данные и использовать php's mysql_real_escape_string() ( документация ).

Это предотвращает внедрение SQL, а фильтрация XSS - нет.

0 голосов
/ 02 марта 2011

Похоже, что в текущей версии CodeIgniter (2.0.0) все изменилось ...

$this->input->post не работает

и $_POST автоматически очищаются при включении global_xss_filtering.

0 голосов
/ 26 марта 2010

Краткий ответ: нет Длинный ответ: возможно, если вы используете более безопасные методы БД

Если вы используете параметризованную функцию (например, pgSQL имеет pg_query_params ()), тогда вам не нужно очищать данные, вам нужно очищать данные только в том случае, если вы объединяете свой SQL, который обычно считается неэффективным кодированием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...