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

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

Уязвимость: присваивание значения напрямую из пользовательского ввода (POST[′user′])безпроверкииочистки.Этоделаеткодуязвимымкинъекциям(XSSпривыводевHTML,SQL‑инъекцияприподстановкевзапросы,команднаяинъекцияприпередачевshell,инклюзиифайловит.п.).</p><p>Примерыиисправления:</p><ul><li>XSS:еслипотомделают<code>echo_POST['user']) без проверки и очистки. Это делает код уязвимым к инъекциям (XSS при выводе в HTML, SQL‑инъекция при подстановке в запросы, командная инъекция при передаче в shell, инклюзии файлов и т.п.).</p><p>Примеры и исправления:</p><ul><li>XSS: если потом делают <code>echo P OST[user])безпроверкииочистки.Этоделаеткодуязвимымкинъекциям(XSSпривыводевHTML,SQLинъекцияприподстановкевзапросы,команднаяинъекцияприпередачевshell,инклюзиифайловит.п.).</p><p>Примерыиисправления:</p><ul><li>XSS:еслипотомделают<code>echouser;, злоумышленник может отправить <script>…</script>. Решение: при выводе в HTML использовать htmlspecialchars(user,ENTQUOTES,′UTF−8′)</code>.</li><li>SQL‑инъекция:при<code>"...WHEREname=′user, ENT_QUOTES, 'UTF-8')</code>.</li><li>SQL‑инъекция: при <code>"... WHERE name = 'user,ENTQ UOTES,UTF8)</code>.</li><li>SQLинъекция:при<code>"...WHEREname=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 Окт в 16:55
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир