На собесах часто спрашивают про кэш и куки. Сегодня попробую на простом языке рассказать, а что же за файлы такие - эти cookie🍪, и почему их просят принять.
Ситуация 🤓
Заходишь на досуге на сайт маркетплейса (обычно то ты в приложении это делаешь, а тут захотелось за компом), чтоб прикупить себе новую шмотку или что вы там обычно покупаете?, жмешь «ок» во всплывшем окне про куки, просматриваешь кучу карточек в поисках тех самых джинс, наконец-то находишь и кидаешь их в корзину. Тут тебя за каким-то хреном отвлекают, браузер пришлось закрыть, не оформив заказ.
Завтра появилась минутка, и вот ты снова на том же маркетплейсе. А те самые джинсы до сих пор в корзине! и это без авторизации! Удобно👍 И все просмотренные вчера джинсы тоже отображаются. Мистика, не иначе.
Чтоб сделать заказ, пришлось таки ввести номер телефона и полученный на него код. Через несколько дней заходишь (да, снова не в приложении👀), проверить статус заказа и без лишних действий в виде авторизации попадаешь в свой профиль. Маркетплейс запомнил твою авторизацию
Почему и как это произошло?
Когда ты заходишь на сайт (практически любой, не обязательно маркетплейс), браузер сохраняет некий файл (cookie) на твоем компьютере. Внутри файла есть идентификатор сессии или токен, который связывает тебя (пользователя) с данными на сервере. При повторных посещениях сайта браузер отправляет эти куки на сервер, а сервер распознает тебя по идентификатору.
Чуть сложнее: браузер добавляет к каждому http-запросу заголовок с именем Cookie и передает все куки, ранее сохраненные для этого сайтаУ каждого сайта свой набор cookie. В куках может храниться информация:
🟢идентификатор пользователя для персонализации
🟣уникальный идентификатор для отслеживания действий на сайте (используется для аналитики и в маркетинговых целях)
🟡информация о времени последнего посещения
🟣содержимое корзины
🟢авторизационный токен, который присваивается после ввода логин/пароль
🟡настройки, которые ты выбираешь (язык, регион, тема оформления, валюта) и тд.
Cookie нужны, чтобы идентифицировать тебя как пользователя. Когда вернешься на сайт, он узнает тебя и автоматически подстроится.
Вроде бы одна польза от них🙋. Тогда зачем просят согласиться с их использованием на сайте?
Потому что они собирают данные о действиях пользователя на сайте - для улучшения работы сайта, персонализации контента и рекламы, а также для аналитики.
Сбор и обработка таких данных регулируются законом о защите персональных данных, который требует информировать об этом пользователя.
А еще, не встречала на практике, но пишут, что злоумышленники (хакеры) могут перехватить файлы cookie и воспользоваться информацией, которая в них хранится🤸♀️ (например, спереть токен авторизации и получить доступ к личному кабинету, подменить данные, отправляемые на сервер).
Но давайте успокоимся и выдохнем. Современные сайты вообще-то применяют меры безопасности, например, используют защищённое соединение (HTTPS с криптографическим протоколом TLS), что существенно снижает риск перехвата cookie.
Еще отдельным постом могу поделиться, как протестировать куки, если кому-нибудь это будет полезноВ некоторых мобильных приложениях, кстати, тоже есть куки, но пользователь соглашается на обработку этих cookies через принятие условий политики конфиденциальности при использовании приложения, а не через отдельный всплывающий баннер.
#записки_тестировщика
Как на маркетплейсы, кстати, ходите: через мобильное приложение или иногда все же сайтом пользуетесь?
