Що таке cookies? Як сайти запам’ятовують вас
Cookie — це невеликий текстовий фрагмент, який сайт просить ваш браузер зберегти і потім надсилати назад під час кожного наступного візиту на цей сайт. Так сайт «пам’ятає» вас: що ви ввійшли в обліковий запис, що є у вашому кошику, яку мову ви обрали. Cookies — це лише дані, а не програми, але оскільки вони можуть ідентифікувати вас, вони важливі і для безпеки, і для приватності.
Чому це важливо, коли ви створюєте щось за допомогою ШІ
Cookies лежать в основі кількох функцій, які ви попросите в AI-конструктора, часто навіть без згадки слова «cookie»:
- Вхід. У більшості веб-застосунків «залишатися в системі» означає cookie сесії. Те, як налаштований цей cookie, визначає, наскільки легко його викрасти.
- Кошики та налаштування. Кошик, який зберігається після оновлення сторінки, часто спирається на cookie або на сховище браузера.
- Аналітика та реклама. Додавання Google Analytics, пікселя Meta або віджета чату зазвичай додає cookies від інших компаній.
- Правові повідомлення. Багато де для деяких cookies потрібна згода відвідувача, звідси і беруться банери cookies.
Якщо ви знаєте, які cookies встановлює ваш застосунок і навіщо, ви можете краще обирати налаштування безпеки, згоду та вашу політику приватності.
Побутова аналогія
Уявіть номерок у гардеробі. Ви віддаєте пальто і отримуєте номерок з цифрою. Номерок не містить вашого пальто — лише номер. Щоразу, коли ви підходите до стійки, ви показуєте номерок, і гардеробниця знає, яке пальто ваше.
Cookie сесії працює так само. Коли ви входите, сервер зберігає ваші дані у себе, а вашому браузеру видає номерок — довгий випадковий ідентифікатор. Браузер показує цей номерок із кожним запитом, а сервер шукає, хто ви. Той, хто скопіює номерок, може забрати пальто, тому cookies входу треба захищати.
Як насправді працює cookie
- Ви відкриваєте сайт. Відповідь сервера містить заголовок на кшталт
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax. - Ваш браузер зберігає його, прив’язавши до домену сайту.
- Під час кожного наступного запиту до того самого сайту браузер автоматично додає
Cookie: session_id=8f3k.... - Сервер читає його і знає, що це ви.
JavaScript сторінки теж може створювати cookies, але найважливіші з них — cookies входів — має встановлювати сервер і ховати від JavaScript.
Типи cookies
| Тип | Що означає | Приклад |
|---|---|---|
| Сесійний cookie | Немає дати закінчення; видаляється, коли сеанс браузера завершується | Короткий крок оформлення замовлення |
| Постійний cookie | Має дату закінчення (Expires або Max-Age) і зберігається після перезапуску | «Запам’ятати мене на 30 днів» |
| Першої сторони | Встановлює сайт в адресному рядку | Ваш вхід на цей сайт |
| Третьої сторони | Встановлює інший домен, вбудований у сторінку | Ідентифікатор відстеження рекламної мережі |
| Суворо необхідні | Потрібні для сервісу, який запросив користувач | Сесія входу, кошик покупок |
| Неосновні | Корисні для власника сайту | Аналітика, реклама, A/B-тестування |
Браузери поступово обмежують cookies третіх сторін, бо їх використовують, щоб відстежувати людей між сайтами. Кілька великих браузерів тепер блокують багато з них за замовчуванням, а деталі постійно змінюються, тож не будуйте нічого важливого на cookies третіх сторін.
Практичний приклад: невеликий онлайн-магазин
Припустимо, ви створили магазин, який продає свічки ручної роботи. Ось cookies, які встановила б розважлива версія, і чому.
session — встановлюється, коли власник або клієнт входить в обліковий запис. Він містить лише випадковий ідентифікатор; реальні дані сесії зберігає сервер. Налаштування: HttpOnly (скрипти сторінки не можуть його прочитати), Secure (надсилається лише через HTTPS), SameSite=Lax (не надсилається в більшості запитів, які ініціюють інші сайти). Суворо необхідний.
cart_id — дозволяє відвідувачу, який не ввійшов, зберегти свій кошик. Він вказує на кошик, збережений у базі даних. Суворо необхідний, бо відвідувач сам попросив додати товари до кошика.
theme — запам’ятовує темний режим. Це могло б бути cookie, але йому ніколи не потрібно доходити до сервера, тож простіше використати localStorage браузера.
Cookies аналітики — додаються, якщо ви встановлюєте інструмент аналітики. Вони неосновні. У ЄС і Великій Британії для них зазвичай потрібна згода до встановлення, тому скрипт аналітики має чекати, поки відвідувач натисне «Прийняти».
Зверніть увагу, що магазин не зберігає в cookies: ім’я клієнта, адресу чи дані картки. Cookies надсилаються з кожним запитом і лежать на пристрої користувача, тож вони мають містити ідентифікатори, а не персональні дані.
Поширені терміни простими словами
| Термін | Що означає |
|---|---|
| Cookie | Невелика пара назва–значення, яку браузер зберігає і надсилає назад сайту. |
Set-Cookie | Заголовок відповіді, яким сервер створює або оновлює cookie. |
| Сесія | Запис сервера про користувача, що ввійшов, прив’язаний до ідентифікатора в cookie. |
HttpOnly | Забороняє JavaScript сторінки читати cookie, що обмежує шкоду від вставлених скриптів. |
Secure | Cookie надсилається лише через зашифровані з’єднання HTTPS. |
SameSite | Визначає, чи надсилається cookie в запитах з інших сайтів (Strict, Lax або None). |
Expires / Max-Age | Коли cookie має бути видалено. |
| Domain / Path | Які адреси на сайті отримують cookie. |
| localStorage | Сховище браузера, яке може читати код сторінки, але яке автоматично не надсилається на сервер. |
| XSS | Cross-site scripting: скрипт зловмисника, що виконується на вашій сторінці і може намагатися викрасти дані. |
| CSRF | Cross-site request forgery: інший сайт змушує браузер надіслати запит із вашими cookies. |
| Згода на cookies | Запит дозволу відвідувачів перед встановленням неосновних cookies. |
Поширені помилки та хибні уявлення
- «Cookies — це віруси». Це простий текст. Вони не можуть виконувати код на вашому комп’ютері.
- Зберігання чутливих даних у cookies. Зберігайте випадковий ідентифікатор, а деталі тримайте на сервері.
- Токени входу в localStorage. Будь-який скрипт, що працює на сторінці, може прочитати localStorage, зокрема вставлений зловмисником. Cookie
HttpOnlyвзагалі не можуть прочитати скрипти сторінки. - Відсутні прапорці
SecureіHttpOnly. Ці два прапорці дешеві й закривають поширені діри. - Розрахунок, що банер покриває все. Банер, який завантажує аналітику до того, як хтось натисне «Прийняти», не виконує свою роботу.
- Забутий вихід із системи. Вихід має видаляти cookie і завершувати сесію на сервері, щоб скопійований cookie перестав працювати.
- «Якщо я не використовую cookies, правила приватності не діють». Такі правила, як GDPR, стосуються персональних даних незалежно від того, де вони зберігаються: локальне сховище, відбитки пристрою та серверні журнали включно.
Що запитати в AI-конструктора
- «Перелічи всі cookies, які встановлює застосунок, для чого вони, як довго діють і чи є вони суворо необхідними.»
- «Використовуй для сесії входу cookie
HttpOnly,Secure,SameSite=Lax. Не зберігай токени авторизації в localStorage.» - «Зберігай у cookie лише випадковий ідентифікатор сесії, а дані сесії — на сервері.»
- «Під час виходу очищай cookie і анулюй сесію на сервері.»
- «Не завантажуй скрипти аналітики чи маркетингу, доки відвідувач їх не прийме, і запам’ятовуй його вибір.»
- «Додай у політику приватності простий розділ про cookies, який відповідає переліку вище.»
Щодо згоди див. як додати згоду на cookies. Щоб зрозуміти, як cookies пов’язані з входами, прочитайте що таке автентифікація.
Cookies у Mythex
Mythex не надає вбудованого входу для користувачів вашого застосунку, тож cookies, які встановлює ваш застосунок, походять із його власного коду та інструментів, які ви до нього додаєте, — наприклад, cookie сесії від підходу до автентифікації, який ви обрали. Попросіть агента в чаті перелічити їх, посилити їхні налаштування або додати банер згоди, і перевірте результат у живому превʼю, перш ніж публікувати. Документаційний рецепт додавання входу до застосунку — гарний стартовий промпт, а безпека для застосунків, які ви створюєте пояснює, як тримати ключі та секрети поза браузером.
Запитання
Що таке cookie на сайті?
Cookie — це невеликий текстовий фрагмент, який сайт просить ваш браузер зберегти. Браузер надсилає його назад із кожним наступним запитом до цього сайту, і це дозволяє сайту пам’ятати, наприклад, чи ви увійшли в обліковий запис або що є у вашому кошику.
Чи небезпечні cookies?
Cookies — це лише дані, а не програми, тож вони не можуть виконувати код або заразити комп’ютер. Проблеми стосуються приватності — коли сторонні cookies відстежують вас між сайтами, і безпеки — коли cookie входу викрадають і використовують, щоб видавати себе за вас.
У чому різниця між cookies першої та третьої сторони?
Cookie першої сторони встановлює сайт, який відкрито у вашій адресній рядку, наприклад cookie входу. Cookie третьої сторони встановлює інший домен, вбудований у сторінку, наприклад рекламна мережа, і часто його використовують, щоб стежити за вами на багатьох сайтах.
Чи потрібен банер cookies?
Це залежить від того, де ваші користувачі і які cookies ви використовуєте. У ЄС і Великій Британії неосновні cookies, як-от аналітика чи реклама, зазвичай потребують згоди, а cookies, суворо необхідні для сервісу, як-от сесія входу, зазвичай ні. Перевірте правила, що стосуються саме вас.
У чому різниця між cookies і localStorage?
Обидва зберігають дані в браузері. Cookies автоматично надсилаються на сервер з кожним запитом, що зручно для входів. localStorage лишається в браузері, і його читає лише код самої сторінки, що підходить для налаштувань на кшталт теми.