Видове бисквитки: пълно техническо ръководство
Не всички бисквитки са еднакви. Видът на бисквитката определя колко дълго се съхранява, кой може да я чете, колко сигурно се предава и — което е особено важно — дали изисква съгласие от потребителя. Разбирането на тези разлики е от съществено значение както за съответствието, така и за внедряването.
Сесийни бисквитки спрямо постоянни бисквитки
Най-фундаменталната разлика е колко дълго съществува дадена бисквитка.
Сесийни бисквитки
Сесийната бисквитка съществува само за времетраенето на дадена сесия в браузъра. Тя няма атрибут Expires или Max-Age. Когато потребителят затвори браузъра си, бисквитката се изтрива.
Set-Cookie: cart_id=xyz789; Path=/; Secure; HttpOnly
Сесийните бисквитки обикновено се използват за:
- Поддържане на състоянието на вписване по време на посещение
- Съдържание на пазарска количка
- Токени за защита от CSRF
- Данни от многостъпкови формуляри
Тъй като сесийните бисквитки не се съхраняват дълготрайно, те по принцип са по-малко натрапчиви от гледна точка на поверителността. Въпреки това те все пак изискват съгласие, ако не са строго необходими за услугата, поискана от потребителя.
Постоянни бисквитки
Постоянната бисквитка има изрична дата на изтичане. Тя оцелява при рестартиране на браузъра и остава на устройството на потребителя, докато не изтече или не бъде изтрита ръчно.
Set-Cookie: preferences_lang=en; Path=/; Max-Age=31536000; Secure
Тази бисквитка ще се съхранява една година (31 536 000 секунди). Често използване включва:
- Функционалност за запомняне на вписването
- Предпочитания за език и тема
- Идентификатори за анализ (бисквитките на Google Analytics се съхраняват до 2 години)
- Рекламно проследяване (някои рекламни бисквитки се съхраняват 13 месеца или повече)
Постоянните бисквитки подлежат на по-голям контрол съгласно разпоредбите за поверителност. CNIL (френският орган за защита на данните) препоръчва максимална продължителност на съхранение на бисквитките от 13 месеца, като съгласието трябва да се подновява поне на всеки 13 месеца.
Собствени бисквитки спрямо бисквитки на трети страни
Тази разлика е централна за дебата относно поверителността и пряко влияе върху изискванията за съгласие.
Собствени бисквитки
Собствената бисквитка се задава от домейна, който потребителят действително посещава. Ако посетите example.com, всяка бисквитка, зададена от example.com, е собствена бисквитка.
Собствените бисквитки се използват за основни функции на уебсайта: сесии, предпочитания, анализи, които операторът на уебсайта извършва сам. Те могат да бъдат прочетени само от домейна, който ги е задал.
Пример: Посещавате shop.example.com. Сървърът задава бисквитка с име session_id. Тази бисквитка се изпраща само до shop.example.com и неговите поддомейни. Никой друг уебсайт не може да получи достъп до нея.
Бисквитки на трети страни
Бисквитката на трета страна се задава от домейн, различен от този, който потребителят посещава. Когато example.com зарежда рекламен скрипт от ads.tracker.com и този скрипт задава бисквитка под домейна tracker.com, това е бисквитка на трета страна.
Точно така работи проследяването между сайтове. Бисквитката на tracker.com се изпраща при всяка заявка към tracker.com, независимо от това кой уебсайт е задействал заявката. Ако скриптовете на tracker.com са вградени в 10 000 уебсайта, те могат да наблюдават един и същ потребител във всичките 10 000 сайта.
Бисквитките на трети страни са основната цел както на регулаторните действия, така и на ограниченията на ниво браузър:
- Safari блокира бисквитките на трети страни по подразбиране от 2020 г. (ITP)
- Firefox блокира известни проследяващи модули на трети страни по подразбиране (ETP)
- Chrome се отдалечава от бисквитките на трети страни чрез инициативата Privacy Sandbox
- Регулаторните действия за налагане на санкции преобладаващо са насочени към проследяващите бисквитки на трети страни
Сигурни бисквитки
Бисквитка с атрибута Secure се изпраща само през HTTPS връзки. Тя никога няма да бъде предадена през нешифрован HTTP.
Set-Cookie: auth_token=secret123; Secure
Това предотвратява прихващането на бисквитката от нападател тип „човек по средата“ по несигурна връзка. Всяка бисквитка, съдържаща чувствителна информация — сесийни идентификатори, токени за удостоверяване, лични данни — винаги трябва да бъде маркирана като Secure.
От гледна точка на съответствието, липсата на флага Secure при чувствителни бисквитки може да се счита за неприлагане на подходящи технически мерки съгласно член 32 от GDPR (сигурност на обработването).
HttpOnly бисквитки
Бисквитка с атрибута HttpOnly не може да бъде достъпена от JavaScript чрез document.cookie. Тя се изпраща само с HTTP заявки към сървъра.
Set-Cookie: session_id=abc123; HttpOnly
Това е критична мярка за сигурност. Атаките чрез междусайтов скриптинг (XSS) често се опитват да откраднат бисквитки чрез инжектиране на JavaScript, който чете document.cookie. Флагът HttpOnly напълно предотвратява този вектор.
Сесийните бисквитки и бисквитките за удостоверяване почти винаги трябва да бъдат HttpOnly. Бисквитките, които трябва да бъдат прочетени от JavaScript от страна на клиента (като бисквитки за предпочитания, които влияят на интерфейса), не могат да бъдат HttpOnly.
SameSite бисквитки
Атрибутът SameSite контролира дали дадена бисквитка се изпраща с междусайтови заявки. Той е въведен, за да ограничи атаките за фалшифициране на междусайтови заявки (CSRF) и да даде на сайтовете по-голям контрол върху поведението на междусайтовите бисквитки.
SameSite=Strict
Бисквитката се изпраща само със заявки, произхождащи от същия сайт. Ако потребител кликне върху връзка в other.com, водеща към your-site.com, бисквитката няма да бъде изпратена с тази първоначална заявка.
Това е най-сигурната настройка, но може да наруши легитимна функционалност. Например, ако потребител кликне върху връзка към вашия сайт от имейл, неговата сесийна бисквитка няма да бъде изпратена и той ще изглежда сякаш е излязъл от профила си.
SameSite=Lax
Бисквитката се изпраща с навигации от най-високо ниво (кликване върху връзка), но не и с междусайтови подзаявки (зареждане на изображения, рамки или извършване на AJAX заявки от друг сайт). Това е стойността по подразбиране в съвременните браузъри, ако не е зададен атрибут SameSite.
Lax осигурява разумен баланс между сигурност и удобство. Той предотвратява това сайтове на трети страни да задействат удостоверени действия на вашия сайт, като същевременно позволява нормалната навигация чрез връзки да работи.
SameSite=None
Бисквитката се изпраща с всички заявки, включително междусайтови заявки. Това е необходимо, за да функционират бисквитките на трети страни. Бисквитка, зададена с SameSite=None, трябва да има и атрибута Secure.
Set-Cookie: tracking_id=xyz; SameSite=None; Secure
Всяка бисквитка, която трябва да работи в междусайтов контекст (вградени джаджи, удостоверяване от трети страни, междусайтово проследяване), трябва да използва SameSite=None. Това става все по-актуално, тъй като браузърите затягат политиките си за бисквитки по подразбиране.
Зомби бисквитки и супербисквитки
Заслужава си да ги споменем, защото представляват опити за заобикаляне на контрола върху поверителността:
- Зомби бисквитките са бисквитки, които се възстановяват след изтриване. Те обикновено работят, като съхраняват един и същ идентификатор в множество механизми за съхранение (бисквитки, localStorage, IndexedDB, Flash LSO) и използват онзи, който оцелее, за да регенерират останалите. Тази практика е широко считана за измамна и е била обект на действия за налагане на санкции.
- Супербисквитките са проследяващи механизми, които работят на ниво под нормалните бисквитки — например инжектиране на хедъри на ниво интернет доставчик (UIDH на Verizon) или отпечатване, базирано на HSTS. Те са изключително трудни за контрол или изтриване от потребителите.
Както зомби бисквитките, така и супербисквитките са явно несъвместими с изискванията на GDPR и ePrivacy. Използването им би представлявало нарушение на принципите за прозрачност, законосъобразност и свеждане на данните до минимум.
Сравнителна таблица
| Вид | Продължителност | Обхват | Обикновено изисква съгласие? | Основни случаи на употреба |
|---|---|---|---|---|
| Сесийна | Само сесия в браузъра | Собствена | Само ако не е основна | Състояние на вписване, количка, CSRF токени |
| Постоянна (собствена) | От дни до години | Собствена | Обикновено да | Предпочитания, анализи, запомняне на вписване |
| Постоянна (на трета страна) | От дни до години | Междусайтова | Почти винаги да | Реклама, ретаргетиране, социални джаджи |
| Secure | Различна | Само HTTPS | Зависи от целта | Всяка чувствителна бисквитка |
| HttpOnly | Различна | Само от страна на сървъра | Зависи от целта | Сесийни идентификатори, токени за удостоверяване |
| SameSite=Strict | Различна | Само от същия сайт | Зависи от целта | Операции, чувствителни към CSRF |
| SameSite=Lax | Различна | Същия сайт + навигация от най-високо ниво | Зависи от целта | Общо управление на сесии |
| SameSite=None | Различна | Всички контексти (изисква Secure) | Почти винаги да | Вградени елементи на трети страни, междусайтово удостоверяване |
Какво означава това за съответствието
Видът на бисквитката пряко влияе върху вашите задължения за съответствие:
- Собствените сесийни бисквитки, които са строго необходими (сесии за вписване, пазарски колички, CSRF токени), са освободени от изискванията за съгласие съгласно член 5(3) от ePrivacy.
- Собствените постоянни бисквитки за анализ, предпочитания или функционалност обикновено изискват съгласие — макар че някои органи за защита на данните допускат ограничени изключения за собствен анализ при определени условия.
- Бисквитките на трети страни от какъвто и да е вид почти винаги изискват изрично предварително съгласие. Съществуват много малко легитимни изключения.
- Атрибутите за сигурност (Secure, HttpOnly, SameSite) не променят изискванията за съгласие, но използването им демонстрира добра практика за сигурност — което само по себе си е изискване на GDPR.
Да знаете точно кои бисквитки задава вашият уебсайт — и от какъв вид е всяка от тях — е основата на всяка програма за съответствие. Скенерът на Passiro автоматично идентифицира и класифицира всяка бисквитка на вашия уебсайт, включително бисквитки на трети страни, зададени от вградени скриптове, за които може дори да не подозирате.
Сега, след като разбираме видовете, нека разгледаме как бисквитките са организирани в категории на съгласие — класификационната система, която определя как те се появяват във вашия банер за бисквитки.
Вашият уебсайт съответства ли на правилата за бисквитки?
Сканирайте уебсайта си безплатно и намерете всички бисквитки за минути.
Сканирайте бисквитките си безплатно