Что такое атрибут HttpOnly у cookie и как его тестировать?

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

Ответ

HttpOnly — это флаг, устанавливаемый для HTTP-куки, который запрещает доступ к ней через JavaScript (например, через document.cookie). Это критически важная мера защиты от XSS-атак, предотвращающая кражу сессионных токенов.

Как тестировать атрибут HttpOnly:

  1. Ручная проверка в DevTools:
    • Откройте вкладку ApplicationCookies.
    • Найдите нужную куку и убедитесь, что в колонке HttpOnly стоит галочка.
  2. Автоматизированная проверка в API-тестах (пример на JavaScript для Postman):
    pm.test("Session cookie must have HttpOnly flag", function () {
    const sessionCookie = pm.cookies.get("sessionId");
    pm.expect(sessionCookie).to.be.an('object');
    pm.expect(sessionCookie.httpOnly).to.be.true; // Ключевая проверка
    });
  3. Проверка с помощью инструментов безопасности:
    • Сканеры уязвимостей (OWASP ZAP, Burp Suite) автоматически отмечают куки без флага HttpOnly как потенциально уязвимые.

Важно: Кука с HttpOnly по-прежнему автоматически отправляется браузером с каждым HTTP-запросом к домену, поэтому функциональность аутентификации не страдает.