Является ли протокол HTTP безопасным?

«Является ли протокол HTTP безопасным?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, HTTP не является безопасным протоколом. Данные передаются в открытом виде (plain text) без шифрования, что позволяет злоумышленникам перехватывать, читать и модифицировать трафик (атаки "человек посередине").

Почему это важно для тестирования:

  • Передача логинов, паролей, токенов или персональных данных по HTTP — критическая уязвимость.
  • Современные браузеры помечают сайты на HTTP как "небезопасные".

Пример уязвимого кода на Python:

import requests
# НЕБЕЗОПАСНО: данные видны в сети
response = requests.get('http://api.example.com/login', params={'username': 'admin', 'password': 'secret123'})

Решение: Всегда используйте HTTPS (HTTP + SSL/TLS), который шифрует соединение. При тестировании проверяйте:

  1. Все ли эндпоинты используют HTTPS.
  2. Настроены ли правильные редиректы с HTTP на HTTPS.
  3. Действительны и не просрочены ли SSL-сертификаты.