Фильтрация ввода PHP с использованием New 5.2, Хотите перейти от $ _POST / GET, как их санировать? - PullRequest
0 голосов
/ 25 августа 2011

Я хочу использовать новую фильтрацию ввода PHP 5> для очистки и проверки опубликованных данных, я понимаю, как использовать функцию filter_input. Но я не совсем понимаю, что мне нужно для очистки данных для вставки базы данных и отправки электронной почты.

По сути, я хочу санировать свои данные (не проверять, я понимаю, как это сделать), чтобы мне было безопасно обрабатывать их в своем бэкэнде (т. Е. Предотвращать внедрение SQL, XSS и т. Д.).

Допустим, я делаю это:

// What do I need to do to sanitize this data for SQL as best as possible.
$var = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT, array()); //Validate Example

Вот ссылка на документацию по фильтру PHP. Какая-то путаница с таким количеством типов! Из них какие фильтры мне нужно использовать, чтобы избежать ВСЕХ опасных данных. И я предполагаю, что я использую их так же, как указано выше. Это правильно?

Так что в основном .. Как санировать ВСЕ опасные данные, используя новую функцию filter_input, какой из фильтров из здесь мне нужен?

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Использование PDO или функции escape-строки mysql защитит вас от них.

Если у вас есть число, например, ID, я всегда применяю его, используя intval, так что если это будет что-то отличное от числа, оно будет0.

1 голос
/ 25 августа 2011

Я полагаю, что это уже задавали несколько раз.

Внедрение SQL может быть предотвращено, если вы используете подготовленные операторы .

Чтобы предотвратить XSS, вы не должны отображаться при вводе HTML пользователями (например, преобразовывать их в сущности HTML с помощью FILTER_SANITIZE_SPECIAL_CHARS или иным образом) или агрессивно добавлять теги белого списка, если вы хотите разрешить HTML.

...