Найдите уязвимость в PHP‑фрагменте:
$user = $_POST['user']

14 Окт 2025 в 14:55
66 +1
0
Ответы
1

Уязвимость: присваивание значения напрямую из пользовательского ввода ($_POST['user']) без проверки и очистки. Это делает код уязвимым к инъекциям (XSS при выводе в HTML, SQL‑инъекция при подстановке в запросы, командная инъекция при передаче в shell, инклюзии файлов и т.п.).

Примеры и исправления:

XSS: если потом делают echo $user;, злоумышленник может отправить <script>…</script>. Решение: при выводе в HTML использовать htmlspecialchars($user, ENT_QUOTES, 'UTF-8').SQL‑инъекция: при "... WHERE name = '$user'" применяйте подготовленные выражения (PDO/MySQLi). Пример PDO:
\$stmt = \$pdo->prepare("SELECT * FROM users WHERE name = ?");
\$stmt->execute([\$user]);Командная инъекция: при system("cmd " . $user) — используйте escapeshellarg() или избегайте вызовов shell.Включение файлов: при include($user . '.php') — применяйте белый список допустимых имён или basename() и проверку на разрешённые пути.Валидация/очистка: если ожидается определённый формат (email, число и т.д.), валидируйте: filter_var($user, FILTER_VALIDATE_EMAIL) или приведение типа (int)$user.

Рекомендация: никогда не доверяйте данным из $_POST; валидируйте по ожидаемому типу/формату, экранируйте при выводе и используйте параметризованные запросы для работы с БД.

14 Окт 2025 в 16:55
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир