← Назад к вопросам

Можно ли редактировать Cookie?

1.6 Junior🔥 251 комментариев
#Инструменты тестирования#Теория тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Можно ли редактировать Cookie?

Да, редактировать Cookie (куки) можно, причём несколькими способами, в зависимости от цели: как вручную через инструменты разработчика в браузере, так и программно через код в рамках автоматизации тестирования или отладки. Куки — это просто пары «ключ-значение», хранящиеся в браузере пользователя и передаваемые в HTTP-заголовках, поэтому их модификация — распространённая задача для QA-инженеров при проверке безопасности, функциональности и различных сценариев работы веб-приложений.

Основные методы редактирования Cookie

1. Через инструменты разработчика в браузере

Самый быстрый способ для ручного тестирования. В браузерах (Chrome, Firefox, Edge) можно открыть DevTools (F12), перейти на вкладку Application (или Storage) и в разделе Cookies выбрать нужный домен. Здесь виден список всех кук, их значения, домены, пути, срок жизни и другие атрибуты. Значение можно редактировать двойным кликом, а также добавлять новые записи или удалять существующие.

2. Программно с помощью JavaScript

В консоли DevTools можно выполнить JavaScript-код для изменения кук. Например, для установки куки с именем session_id:

document.cookie = "session_id=new_value_123; path=/; domain=example.com";

Обратите внимание: document.cookie позволяет устанавливать куки, но для их чтения возвращает строку со всеми куками, что требует парсинга.

3. Через автоматизацию на Selenium WebDriver

В фреймворках для автотестов, таких как Selenium, предусмотрены API для управления куками. Пример на Python:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")

# Добавить новую куку
driver.add_cookie({"name": "user_role", "value": "admin", "path": "/"})

# Получить все куки
cookies = driver.get_cookies()
print(cookies)

# Изменить существующую куку (перезаписать)
driver.delete_cookie("user_role")
driver.add_cookie({"name": "user_role", "value": "editor", "path": "/"})

# Или напрямую через выполнение JavaScript
driver.execute_script("document.cookie='user_role=editor; path=/';")

4. С использованием прокси-инструментов (Burp Suite, Fiddler)

Эти инструменты позволяют перехватывать HTTP-трафик и модифицировать заголовки, включая куки, на лету. Например, в Burp Suite можно установить Intercept на запрос, изменить значение куки в заголовке Cookie, и отправить изменённый запрос на сервер. Это особенно полезно для тестирования безопасности (например, проверка уязвимостей, связанных с куками).

5. Через расширения браузера

Существуют специальные расширения (например, EditThisCookie), которые предоставляют удобный GUI для просмотра и редактирования всех кук на текущей странице.

Зачем редактировать Cookie в тестировании?

  • Проверка безопасности: тесты на переполнение кук, SQL-инъекции через куки, подмену идентификаторов сессии (например, попытка получить доступ под чужим session_id).
  • Функциональное тестирование: имитация различных состояний пользователя (например, изменение куки locale для проверки мультиязычности, или cart_id для тестирования корзины).
  • Тестирование истечения срока действия: установка «протухших» дат в куках для проверки обработки сессий.
  • Отладка и воспроизведение багов: изменение кук для воссоздания условий, при которых возникает ошибка.

Важные нюансы

  • Безопасность: многие куки имеют флаги HttpOnly (запрет доступа через JavaScript) и Secure (передача только по HTTPS). Такие куки нельзя изменить через document.cookie, но их можно модифицировать через прокси или инструменты разработчика на уровне сети.
  • Влияние на приложение: изменение критических кук (например, аутентификации) может привести к разлогиванию или ошибкам, поэтому важно понимать их роль.
  • Очистка контекста: после редактирования кук в автотестах рекомендуется очищать их (driver.delete_all_cookies()) или перезапускать браузер, чтобы избежать побочных эффектов.

Итог: редактирование кук — это стандартная практика для QA-инженера, необходимая для глубокого тестирования веб-приложений. Владея описанными методами, тестировщик может эффективно проверять как позитивные, так и негативные сценарии, связанные с управлением состоянием сессии и безопасностью.