Что пишут в блогах

Подписаться

Что пишут в блогах (EN)

Разделы портала

Онлайн-тренинги

.
Все о куках приложения для тестировщиков
06.08.2025 00:00

Автор: Мирза Сизич (Mirza Sisic)
Оригинал статьи
Перевод: Ольга Алифанова

Что (и зачем) тестировщикам нужно знать о куки-файлах (cookies) приложений?

Cookies приложений за 30 секунд или меньше

Важность куки приложений сейчас возрастает. Они способны обеспечить более удобный и плавный пользовательский опыт, но при этом вызывают множество проблем с безопасностью, которые необходимо учитывать при тестировании.

Чтобы правильно тестировать браузерные куки, сначала нужно понять, что такое куки и в каких контекстах они используются. Знание того, как тестировать куки (и различных способов манипулирования ими) может быть очень полезным и ценным навыком для тестировщика ПО.

Почему куки важны для конфиденциальности данных и пользовательского опыта?

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

Куки-файлы зачастую используются во благо конечного пользователя — например, для сохранения настроек или персонализации посещений сайта. Но куки могут и отслеживать вашу онлайн-активность и передавать личные данные третьим компаниям, что вызывает серьёзные вопросы к конфиденциальности.

Несколько лет назад Европейский Союз внедрил GDPR — регламент по защите и обработке персональных данных. Поскольку куки могут хранить такие данные, сайты обязаны информировать посетителей и получать их согласие перед тем, как разместить на устройстве любые куки с личной информацией. Если пользователь не дал согласия, куки не могут быть установлены. Согласие должно быть:

  • осознанным (пользователь должен понимать, как и для чего используются куки и какие данные хранятся),
  • добровольным,
  • однозначным.

Важно: даже если вы не находитесь в ЕС, GDPR регулирует использование вашего сайта людьми из стран ЕС, независимо от местоположения вашей компании или серверов.

Мир типов куки

Все куки имеют общие характеристики: время жизни, постоянство, уровень доступа и т.п. Однако у отдельных типов куки есть свои особенности. Например, Flash куки не хранятся в браузере, в отличие от большинства других.

В этой статье мы разберём основные типы куки, чтобы понять их специфику и правильный подход к тестированию. Давайте погрузимся в мир куки и научимся их тестировать!

Как долго должны храниться куки? Куки с ограничением по времени

Сессионные куки

Эти куки отслеживают взаимодействия пользователя с сайтом и привязаны к одной сессии. Они временные и помогают сайту распознавать пользователя в активной сессии, например, при покупках в интернет-магазине.

Сессионные куки также используются для:

  • Запоминания, что пользователь вошёл в систему (активная сессия)
  • Сохранения данных формы, чтобы, например, если пользователь заполнил контактную форму, перешёл на другую страницу, а затем вернулся, введённая информация не была утеряна
  • Сохранения предпочтений сайта, таких как выбранный язык, светлая или тёмная тема и так далее

Постоянные куки

Эти куки сохраняются на вашем устройстве даже после закрытия браузера. Это помогает, например, оставаться в аккаунте без необходимости повторного входа. Однако даже такие куки должны удаляться через 12 месяцев.

Постоянные куки служат для:

  • Запоминания настроек пользователя, таких как язык, тема и размер шрифта
  • Хранения зашифрованных данных для автоматического входа
  • Отслеживания поведения пользователя с помощью аналитики в нескольких сессиях
  • Обеспечения персонализированного контента на основе истории просмотров и интересов пользователя

Некоторые подтипы постоянных кук:

  • Отслеживающие куки: отслеживают поведение пользователя на разных сайтах и могут вызывать серьёзные опасения по поводу конфиденциальности.
  • Flash-куки: также называются «Суперкуки», так как сохраняются на компьютере навсегда. Используются Adobe Flash Player, но с сокращением использования Flash стали встречаться реже. Известны также как LSO (Local Shared Objects) и могут сохраняться даже после удаления обычных кук, так как не управляются браузером.
  • Зомби-куки: часто имеют легитимное применение, например, для предотвращения мошенничества в онлайн-играх. Однако могут использоваться в злонамеренных целях. Иногда они воссоздаются после удаления и используются для установки вредоносного ПО на устройстве пользователя. Трудно обнаруживаются и удаляются: могут использовать локальное хранилище браузера или другие механизмы, недоступные обычному пользователю. Иногда применяют XSS (межсайтовый скриптинг) для внедрения кода с вредоносных сайтов, что усложняет их удаление. Или же могут сохраняться на сервере, из-за чего удаление с клиентской стороны затруднено из-за ограниченного доступа.

Кто создал куки? Куки по идентификатору создателя

Обратите внимание, что эти типы кук могут быть как сессионными, так и постоянными.

Куки первого лица (first-party cookies)

Хранятся непосредственно кодом сайта, который вы посещаете. Куки первого лица собирают данные для аналитики, сохраняют языковые настройки и управляют другими параметрами, необходимыми для более удобного и плавного взаимодействия пользователя с сайтом. Вы можете просматривать и изменять их, выбрав соответствующие опции сайта прямо из адресной строки браузера. Они запоминают ваш статус входа в систему, настройки сайта, отслеживание навигации по сайту и данные, такие как содержимое корзины покупок.

Куки третьих лиц (third-party cookies)

Рекламодатели, чей код размещён на посещаемом вами сайте, могут сохранять куки третьих лиц для показа таргетированной рекламы. Например, вы ищете в интернете товар, а затем видите рекламу аналогичных или идентичных продуктов. Такие куки могут использоваться во вредоносных целях и часто входят в стандартные проверки безопасности.

Поскольку эти куки устанавливаются доменом, отличным от того, который использует ваша компания для сайта, их легко пропустить при тестировании, однако их тоже нужно тщательно проверять.

Рекомендации по тестированию куки приложений

Что универсально для тестирования всех типов куки?

При тестировании любого типа куки учитывайте следующее:

  1. Обнаружение и проверка: Используйте инструменты разработчика браузера для выявления и просмотра куки — включая имя, значение, домен, путь, дату истечения и флаг HTTP-only.
  2. Создание и хранение: Убедитесь, что куки создаются в нужный момент, например, при загрузке страницы или после действия пользователя. Проверьте, что они корректно сохраняются на устройстве пользователя.
  3. Получение и сохранение: Проверьте, что куки правильно считываются при повторной загрузке страниц, обеспечивая стабильный пользовательский опыт. Подтвердите их сохранение в соответствии с установленным сроком действия или типом сессии.
  4. Удаление и управление куки: Проверьте возможность удаления куки вручную через настройки браузера или автоматическое удаление после истечения срока действия.
  5. Тестирование безопасности: Убедитесь, что куки передаются по защищённому протоколу HTTPS и имеют флаг HTTP-only, чтобы предотвратить злонамеренное использование скриптами на стороне клиента.

Специфика тестирования конкретных типов куки-файлов

Сессионные куки

  • Проверьте создание и удаление куки в начале и в конце сессии. Особенно важно убедиться, что куки удаляются при закрытии браузера, чтобы не сохранялась никакая информация, кроме той, на которую пользователь дал согласие.
  • Проверьте сохранение данных, связанных с сессией, например, пользовательские настройки или товары в корзине.
  • Убедитесь, что сессионные куки не сохраняются между перезапусками браузера.

Постоянные куки

  • Проверьте имя, значение, домен, путь и дату истечения куки.
  • Попробуйте изменить значения куки, чтобы выявить потенциальные риски безопасности.
  • Очистите кэш браузера, чтобы проверить, как сайт себя ведёт, и убедиться, что постоянные куки устанавливаются правильно.
  • Проверьте работу куки в нескольких сессиях браузера: например, после закрытия и повторного открытия браузера постоянная куки должна сохраняться.
  • Тестируйте в разных браузерах и на разных устройствах, чтобы убедиться, что куки совместимы со всеми и обеспечивают одинаковый пользовательский опыт.

Flash-куки

  • Проверьте обнаружение и удаление с помощью специализированных инструментов (например, FlashCookiesView).
  • Проверьте поведение при доступе к Flash-контенту на сайтах.
  • Проверьте сохранение куки между сессиями браузера и после перезагрузки устройства.

Куки первого лица (First-party cookies)

  • Проверьте создание и сохранение куки при первой загрузке страницы и после действий пользователя.
  • Проверьте даты истечения и сохранение куки в нескольких сессиях браузера.
  • Убедитесь, что куки доступны только для нужного домена и пути, чтобы избежать уязвимостей.

Куки третьих лиц (Third-party cookies)

  • Проверьте, что они устанавливаются доменами третьих лиц и имеют соответствующие области действия.
  • Убедитесь, что для их использования получено согласие пользователя, особенно если куки используются для отслеживания и рекламы.
  • Проверьте, как они влияют на конфиденциальность пользователя и защиту данных.

Инструменты и методы для тестирования куки

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

В браузерах, например в Chrome DevTools, есть встроенные возможности для просмотра, редактирования и удаления куки.

Если перейти в раздел «Application» в инструментах разработчика, можно увидеть подробности о куки, используемых сайтом, а также просмотреть, удалить или изменить их.


Инструменты для автоматической проверки

Такие инструменты, как Selenium WebDriver, Playwright и т. п., могут использоваться для проверки атрибутов и поведения куки. Это экономит время тестировщиков, а инструменты могут служить системой оповещения, если с куки на нашем сайте что-то пойдёт не так.

Эти инструменты могут имитировать поведение конечного пользователя и взаимодействия с нашим сайтом, а также использоваться для проверки поведения куки в нескольких сессиях.


Старое доброе «ручное» тестирование

Хотя автоматизация действительно помогает ускорить тестирование куки, иногда требуется человеческий фактор. Автоматизированные решения проверяют только то, что мы им укажем. Настоящее ручное тестирование всё ещё необходимо и приветствуется, чтобы исследовать куки, выявлять крайние случаи и удостовериться, что куки реализованы интуитивно понятным образом, улучшая пользовательский опыт.

Заключение

Очень важно понимать, как работают куки приложения и как они могут влиять на конфиденциальность и опыт конечных пользователей нашего приложения. Это позволит защитить пользователей от нарушений конфиденциальности и полностью воспользоваться улучшениями UX, которые возможны с помощью куки.

Дополнительная информация