Главная/Статьи/PHP: Очистка данных через PDO
PHPFILTER_SANITIZE_STRING<>?FILTER_SANITIZE_EMAILFILTER_SANITIZE_NUMBER_INTFILTER_SANITIZE_URL

PHP: Очистка данных через PDO

Фильтрация пользовательских данных перед их обработкой — обязательный шаг в любом приложении. Передача «сырых» данных в программу может привести к серьёзным уязвимостям.

Проверка целого числа в диапазоне

$value = filter_input(INPUT_GET, "value", FILTER_VALIDATE_INT,
    array("options" => array("min_range" => 15, "max_range" => 20)));

if ($value) {
    // Выполняем обработку данных
} else {
    print "Вы ввели недопустимое значение";
}

Валидация email

function emailUser($email) {
    $email = filter_var($email, FILTER_VALIDATE_EMAIL);
    if ($email !== false) {
        mail($email, "Письмо", "Содержание");
    }
}

Безопасный запрос через PDO

Используйте привязку параметров для защиты от SQL-инъекций:

$pdo = new PDO('sqlite:users.db');
$stmt = $pdo->prepare('SELECT name FROM users WHERE id = :id');
$stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$stmt->execute();

Доступные фильтры

FILTER_SANITIZE_STRING — удаляет символы <>?

FILTER_SANITIZE_EMAIL — удаляет специальные символы из email

FILTER_SANITIZE_NUMBER_INT — оставляет только цифры и знаки +/-

FILTER_SANITIZE_URL — сохраняет только допустимые для URL символы

Данные фильтры — лишь один из инструментов в процессе очистки и не обеспечивают полную защиту от всех видов атак. Используйте их в связке с подготовленными запросами PDO и другими методами валидации.