Негативные тест-кейсы для формы авторизации
Условие
Дана веб-страница с формой авторизации, которая содержит:
- Поле email
- Поле password
- Кнопку Submit
Напишите негативные тест-кейсы для этой формы.
Проверьте:
- Пустые поля
- Неверные форматы email
- Превышение допустимой длины полей
- Специальные символы
- SQL-инъекции
- XSS-атаки
Для каждого тест-кейса укажите: шаги, ожидаемый результат.
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Негативные тест-кейсы для формы авторизации
Общие предусловия
- URL формы: https://example.com/login
- Браузер: Chrome последней версии
- Требования: правильный email + пароль 8+ символов для успеха
- Система должна предотвращать инъекции и атаки
1. Пустые поля
| ID | Шаги | Входные данные | Ожидаемый результат | Риск |
|---|---|---|---|---|
| NEG_001 | 1. Открыть форму авторизации 2. Оставить оба поля пустыми 3. Нажать Submit | Email: "" Password: "" | Сообщение об ошибке: "Email и пароль обязательны" + форма не отправляется | HIGH |
| NEG_002 | 1. Заполнить email 2. Оставить пароль пустым 3. Нажать Submit | Email: "user@test.com" Password: "" | Сообщение об ошибке: "Пароль обязателен" + блокировка отправки | HIGH |
| NEG_003 | 1. Оставить email пустым 2. Заполнить пароль 3. Нажать Submit | Email: "" Password: "password123" | Сообщение об ошибке: "Email обязателен" + блокировка отправки | HIGH |
| NEG_004 | 1. Заполнить оба поля пробелами 2. Нажать Submit | Email: " " Password: " " | Система должна обработать как пустые + сообщение об ошибке | MEDIUM |
| NEG_005 | 1. Заполнить email пробелами 2. Заполнить пароль корректно 3. Нажать Submit | Email: " " Password: "Pass1234" | Система игнорирует пробелы или выводит ошибку валидации | MEDIUM |
2. Неверные форматы email
| ID | Шаги | Email значение | Ожидаемый результат | Критичность |
|---|---|---|---|---|
| NEG_006 | Введите email без @ символа | "usertestcom" | Ошибка: "Некорректный формат email" | HIGH |
| NEG_007 | Введите email с @ в начале | "@test.com" | Ошибка валидации формата email | HIGH |
| NEG_008 | Введите email с несколькими @ | "user@@test.com" | Ошибка: "Email содержит недопустимые символы" | HIGH |
| NEG_009 | Введите email без домена | "user@" | Ошибка валидации email | HIGH |
| NEG_010 | Введите email с пробелом | "user @test.com" | Ошибка валидации (пробелы в email запрещены) | HIGH |
| NEG_011 | Введите email только домена | "@.com" | Ошибка валидации (отсутствует username) | HIGH |
3. Превышение допустимой длины полей
| ID | Шаги | Входные данные | Ожидаемый результат | |----|------|----------------|-------------------|------| | NEG_018 | Введите email длиной 255 символов | Очень длинный email | Система должна либо обрезать, либо вывести ошибку | | NEG_019 | Введите email длиной 256+ символов | Очень длинный email+1 | Ошибка: "Email слишком длинный" | | NEG_020 | Введите пароль из 100 символов | Строка из 100 P | Система должна принять (если нет ограничения) | | NEG_021 | Введите пароль из 1000 символов | Строка из 1000 P | Система должна обрезать или отклонить с ошибкой |
4. Специальные символы
| ID | Шаги | Символы | Ожидаемый результат | Статус |
|---|---|---|---|---|
| NEG_024 | Введите email с кавычками | '"user"@test.com' | Ошибка валидации (кавычки не допускаются) | HIGH |
| NEG_025 | Введите email с апострофом | "user'@test.com" | Проверить парсинг (может привести к SQL инъекции) | CRITICAL |
| NEG_026 | Введите email с обратной косой чертой | "user@test.com" | Ошибка валидации | MEDIUM |
| NEG_027 | Введите пароль с символом < | "Pass<word123" | Должен быть принят, но заэкранирован от XSS | HIGH |
| NEG_029 | Введите пароль с символом & | "Pass&word123" | Должен быть принят, но правильно экранирован | HIGH |
5. SQL-инъекции
CRITICAL: Защита от SQL инъекций является обязательной
| ID | Атака | Входные данные | Ожидаемый результат | Защита |
|---|---|---|---|---|
| NEG_035 | Comment инъекция | "admin'--" | Система отклоняет или безопасно экранирует | Parameterized queries |
| NEG_036 | OR инъекция | "' OR '1'='1" | Ошибка: "Неверные учетные данные" | Подготовленные запросы |
| NEG_037 | UNION инъекция | "admin' UNION SELECT NULL--" | Отклонение с ошибкой валидации | Parameterized queries |
| NEG_038 | DROP инъекция | "admin'; DROP TABLE users;--" | Система должна отклонить | Ограничение привилегий |
6. XSS-атаки (Cross-Site Scripting)
CRITICAL: XSS защита необходима на уровне фронта и бэка
| ID | XSS вектор | Ожидаемый результат | Защита |
|---|---|---|---|
| NEG_045 | Скрипт-тег | Скрипт не выполняется, текст экранируется | HTML Entity Encoding |
| NEG_046 | img с onerror | Код не выполняется | Content Security Policy (CSP) |
| NEG_047 | javascript: URL | URL не выполняется | URL валидация |
| NEG_049 | SVG с обработчиком | Не выполняется | Санитизация SVG |
| NEG_052 | Форма с action на другой домен | Форма не работает | CORS + SameSite cookies |
7. Рекомендации по безопасности
На уровне фронта
- Валидация формата: Проверять формат email и длину пароля
- Экранирование: Экранировать все пользовательские данные в DOM
- Content Security Policy: Установить CSP заголовок
- SameSite cookies: Установить SameSite=Strict для CSRF защиты
На уровне бэка
- Parameterized Queries: Использовать подготовленные SQL запросы
- Input Validation: Валидировать все входные данные на сервере
- Rate Limiting: Ограничить количество попыток авторизации
- HTTP Security Headers: X-Frame-Options, X-Content-Type-Options
- HTTPS только: Требовать HTTPS для передачи данных
- Пароли в хеше: Использовать bcrypt/Argon2
Логирование и мониторинг
- Логировать все неудачные попытки авторизации
- Мониторить подозрительную активность
- Алертинг при обнаружении попыток инъекций