"email":"alice@example.com",
"passHash":"5f4dcc3b5aa765d61d8327deb882cf99"
}
(это MD5 от "password")
Проект использует устаревшие библиотеки с известными CVE (например, Log4j 2.14, Spring Boot 2.5, старые версии Jackson). Атакующий может эксплуатировать публично известные уязвимости для получения RCE, DoS или утечки данных. Фикс — регулярно обновлять зависимости, использовать OWASP Dependency-Check или Snyk в CI/CD, настроить автоматические обновления через Dependabot.
BCryptPasswordEncoder.
Тест вызывает регистрацию пользователя с паролем "Test123!" и проверяет,
что в БД сохранился bcrypt-хеш (он должен начинаться с $2).
Если это md5/sha1 — билд стопаем.
#!/bin/bash # password-hash-check.sh curl -s -X POST https://staging.example.internal/register \ -d "email=test@example.com&password=Test123!" > /dev/null HASH=$(curl -s "https://staging.example.internal/debug/userhash?email=test@example.com") if echo "$HASH" | grep -Eq '^"\\$2'; then echo "[OK] Пароль хранится через bcrypt/адаптивный хеш" exit 0 fi echo "[BLOCK] Слабое хеширование паролей (не bcrypt/PBKDF2/Argon2)" exit 1
Это защищает от массового взлома всех паролей при утечке базы.
Стандарт:никаких самописных хеш-функций паролей. Только проверенный адаптивный алгоритм через стандартный PasswordEncoder.