Уязвимость: присваивание значения напрямую из пользовательского ввода (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 POST[′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,ENTQUOTES,′UTF−8′)</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; валидируйте по ожидаемому типу/формату, экранируйте при выводе и используйте параметризованные запросы для работы с БД.
Уязвимость: присваивание значения напрямую из пользовательского ввода (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,′UTF−8′)</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; валидируйте по ожидаемому типу/формату, экранируйте при выводе и используйте параметризованные запросы для работы с БД.