Ответ 1
Это не так. $_GET
, $_POST
, $_COOKIE
и $_REQUEST
фильтруются с фильтром по умолчанию. filter_input(INPUT_POST, 'pwd')
без дополнительных параметров также использует фильтр по умолчанию. Таким образом, нет никакой разницы.
Это должен быть элементарный вопрос, но почему лучше использовать что-то вроде этого:
$pwd = filter_input(INPUT_POST, 'pwd');
Вместо просто:
$pwd = $_POST['pwd'];
PS: Я понимаю, что расширение фильтра можно использовать с большим количеством аргументов, чтобы обеспечить дополнительный уровень санитарии.
Это не так. $_GET
, $_POST
, $_COOKIE
и $_REQUEST
фильтруются с фильтром по умолчанию. filter_input(INPUT_POST, 'pwd')
без дополнительных параметров также использует фильтр по умолчанию. Таким образом, нет никакой разницы.
Любые данные, которые отправляются клиентом (например, данные POST), должны быть дезинфицированы и экранированы (и даже лучше, проверены на работоспособность), чтобы гарантировать, что он не собирается убивать ваш сайт.
SQL Injection и Межсайтовый скриптинг являются двумя крупнейшими угрозами для неспособности дезинформировать ваши данные, отправленные пользователем.
Это не лучше.
Пожалуйста, смотрите документы в файле filter_input http://www.php.net//manual/en/function.filter-input.php
и нажмите ссылку "Типы фильтров". http://www.php.net/manual/en/filter.filters.php
Я использовал только целочисленный фильтр...
$user_id = filter_input(INPUT_POST, 'user_id', FILTER_SANITIZE_NUMBER_INT);
$user = abs($user_id); // To get rid of any +/-