Какво представляват бисквитките? Как уебсайтовете ви запомнят
Бисквитката е малък текст, който уебсайт моли браузъра ви да съхрани и после да изпрати обратно при всяко следващо посещение на същия сайт. Така сайтът „ви запомня“: че сте влезли в профила си, какво има в количката ви, кой език сте избрали. Бисквитките са просто данни, а не програми, но тъй като могат да ви идентифицират, са важни както за сигурността, така и за поверителността.
Защо е важно, когато строите с AI
Бисквитките стоят под няколко функции, които ще поискате от AI конструктор, често без думата „бисквитка“ изобщо да се появи:
- Вход. В повечето уеб приложения „остани влязъл“ означава бисквитка за сесия. Начинът, по който е настроена тази бисквитка, определя колко лесно може да бъде откраднат.
- Колички и предпочитания. Количка, която оцелява при презареждане на страницата, често разчита на бисквитка или на браузърно хранилище.
- Аналитика и реклами. Добавянето на Google Analytics, пиксел на Meta или джаджа за чат обикновено добавя бисквитки от други компании.
- Правни известия. На много места някои бисквитки изискват предварително съгласие на посетителя и оттам идват банерите за бисквитки.
Ако знаете кои бисквитки задава приложението ви и защо, можете да правите по-добър избор за настройките за сигурност, съгласието и политиката си за поверителност.
Ежедневна аналогия
Представете си номерче от гардероб. Оставяте палтото си и получавате номерче. Номерчето не съдържа палтото – само число. При всяко връщане до гишето показвате номерчето и служителят знае кое палто е ваше.
Бисквитката за сесия работи по същия начин. Когато влезете, сървърът пази данните ви от своя страна и дава на браузъра ви номерче – дълго случайно ID. Браузърът показва това номерче при всяка заявка, а сървърът търси кой сте. Всеки, който копира номерчето, може да вземе палтото, затова бисквитките за вход трябва да се защитават.
Как точно работи бисквитката
- Посещавате сайт. Отговорът на сървъра включва заглавие като
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax. - Браузърът я съхранява, свързана с домейна на сайта.
- При всяка следваща заявка към същия сайт браузърът автоматично добавя
Cookie: session_id=8f3k.... - Сървърът я чете и знае, че сте вие.
JavaScript на страницата също може да създава бисквитки, но най-важните – бисквитките за вход – трябва да се задават от сървъра и да са скрити от JavaScript.
Видове бисквитки
| Вид | Какво означава | Пример |
|---|---|---|
| Бисквитка за сесия | Няма дата на изтичане; изтрива се, когато сесията в браузъра приключи | Кратка стъпка от плащането |
| Постоянна бисквитка | Има дата на изтичане (Expires или Max-Age) и оцелява при рестартиране | „Запомни ме 30 дни“ |
| От първа страна | Задава се от сайта в адресната лента | Вашият вход в този сайт |
| От трета страна | Задава се от друг домейн, вграден в страницата | Идентификатор на рекламна мрежа |
| Строго необходима | Нужна за услуга, която потребителят е поискал | Сесия за вход, количка за пазаруване |
| Незадължителна | Полезна за собственика на сайта | Аналитика, реклама, A/B тестове |
Браузърите постепенно ограничават бисквитките от трети страни, защото се използват за проследяване на хората между сайтовете. Няколко основни браузъра сега ги блокират по подразбиране, а подробностите продължават да се променят, затова не строете нищо важно върху бисквитки от трети страни.
Работен пример: малък онлайн магазин
Да кажем, че сте направили магазин, който продава ръчно изработени свещи. Ето бисквитките, които разумна версия би задавала, и защо.
session – задава се, когато собственикът или клиент влиза в профила си. Съдържа само случаен ID; сървърът пази истинските данни за сесията. Настройки: HttpOnly (скриптовете на страницата не могат да я четат), Secure (изпраща се само през HTTPS), SameSite=Lax (не се изпраща при повечето заявки, започнати от други сайтове). Строго необходима.
cart_id – позволява на посетител, който не е влязъл, да запази количката си. Сочи към количка, съхранена в базата данни. Строго необходима, защото посетителят е поискал да добави неща в количка.
theme – запомня тъмната тема. Това може да е бисквитка, но никога не трябва да стига до сървъра, затова localStorage в браузъра е по-простият вариант.
Аналитични бисквитки – добавят се, ако инсталирате аналитичен инструмент. Те са незадължителни. В ЕС и Великобритания обикновено изискват съгласие, преди да бъдат зададени, затова скриптът за аналитика трябва да изчака посетителят да натисне „Приемам“.
Обърнете внимание какво магазинът не съхранява в бисквитки: името, адреса или данните за картата на клиента. Бисквитките пътуват с всяка заявка и живеят на устройството на потребителя, затова трябва да съдържат ID-та, а не лични данни.
Често срещани термини
| Термин | Какво означава |
|---|---|
| Бисквитка | Малка двойка име–стойност, която браузърът съхранява и изпраща обратно към сайта. |
Set-Cookie | Заглавието на отговора, с което сървърът създава или обновява бисквитка. |
| Сесия | Записът на сървъра за влязъл потребител, свързан с ID на бисквитка. |
HttpOnly | Спира JavaScript на страницата да чете бисквитката, което ограничава щетите от инжектирани скриптове. |
Secure | Бисквитката се изпраща само през криптирани HTTPS връзки. |
SameSite | Определя дали бисквитката се изпраща при заявки от други сайтове (Strict, Lax или None). |
Expires / Max-Age | Кога бисквитката трябва да бъде изтрита. |
| Domain / Path | Кои адреси на сайта получават бисквитката. |
| localStorage | Браузърно хранилище, което кодът на страницата може да чете, но което не се изпраща автоматично към сървъра. |
| XSS | Cross-site scripting: скрипт на нападател, работещ във вашата страница, който може да се опита да открадне данни. |
| CSRF | Cross-site request forgery: друг сайт, който заблуждава браузъра да изпрати заявка с вашите бисквитки. |
| Съгласие за бисквитки | Искане на разрешение от посетителите, преди да се зададат незадължителни бисквитки. |
Чести грешки и заблуди
- „Бисквитките са вируси.“ Те са обикновен текст. Не могат да изпълняват код на вашия компютър.
- Слагане на чувствителни данни в бисквитки. Съхранете случаен ID и пазете данните на сървъра.
- Токени за вход в localStorage. Всеки скрипт, работещ на страницата, може да прочете localStorage, включително инжектиран. Бисквитка
HttpOnlyне може да бъде прочетена от скриптове на страницата изобщо. - Липсващи
SecureиHttpOnly. Тези два флага са евтини и затварят чести дупки. - Предположението, че банерът покрива всичко. Банер, който зарежда аналитика, преди някой да натисне „Приемам“, не изпълнява задачата си.
- Забравяне на изхода. Излизането от профил трябва да изтрие бисквитката и да прекрати сесията на сървъра, така че копирана бисквитка да спре да работи.
- „Ако не използвам бисквитки, правилата за поверителност не важат.“ Правила като GDPR покриват личните данни, където и да се съхраняват – включително локалното хранилище, отпечатъците на устройството и сървърните логове.
Какво да поискате от AI конструктора си
- „Изброй всяка бисквитка, която приложението задава, за какво е, колко време е валидна и дали е строго необходима.“
- „Използвай
HttpOnly,Secure,SameSite=Laxбисквитка за сесията за вход. Не слагай токени за удостоверяване в localStorage.“ - „Пази в бисквитката само случаен ID на сесията; пази данните за сесията на сървъра.“
- „При изход изтрий бисквитката и прекрати сесията на сървъра.“
- „Не зареждай аналитични или маркетингови скриптове, докато посетителят не ги приеме, и запомни избора му.“
- „Добави кратък раздел за бисквитките в политиката за поверителност, който съвпада със списъка по-горе.“
За частта със съгласието вижте как да добавите съгласие за бисквитки. За връзката им с входовете прочетете какво е удостоверяване.
Бисквитки в Mythex
Mythex не предоставя вграден вход за потребителите на вашето приложение, така че бисквитките, които приложението ви задава, идват от собствения му код и инструментите, които добавите към него – например бисквитка за сесия от подхода за удостоверяване, който изберете. Поискайте от агента в чат да ги изброи, да затегне настройките им или да добави банер за съгласие, и проверете резултата в жива визуализация, преди да публикувате. Рецептата в документацията за добавяне на вход в приложението е добра начална подсказка, а сигурността за приложенията, които строите обяснява как да държите ключовете и тайните извън браузъра.
Въпроси
Какво е бисквитка на уебсайт?
Бисквитката е малък текст, който сайтът моли браузъра ви да запази. Браузърът го изпраща обратно при всяка следваща заявка към същия сайт, което позволява на сайта да помни неща като дали сте влезли в профила си или какво има в количката ви.
Опасни ли са бисквитките?
Бисквитките са просто данни, а не програми, затова не могат да изпълняват код или да заразят компютър. Притесненията са за поверителността, когато бисквитки на трети страни ви проследяват между сайтове, и за сигурността, когато бисквитка за вход бъде откраднат и използвана, за да се представя някой за вас.
В каква е разликата между бисквитки от първа и от трета страна?
Бисквитка от първа страна се поставя от сайта, който е в адресната лента, например бисквитка за вход. Бисквитка от трета страна се поставя от друг домейн, вграден в страницата, например рекламна мрежа, и често се използва, за да ви следва между много сайтове.
Нужен ли ми е банер за бисквитки?
Зависи къде са вашите потребители и какви бисквитки използвате. В ЕС и Великобритания бисквитките, които не са задължителни, като аналитичните или рекламните, обикновено изискват съгласие предварително, докато бисквитките, строго необходими за услугата, като сесия за вход, обикновено не. Проверете правилата, които важат за вас.
В каква е разликата между бисквитки и localStorage?
И двете съхраняват данни в браузъра. Бисквитките се изпращат към сървъра автоматично при всяка заявка, което подхожда за входове. localStorage остава в браузъра и се чете само от собствения код на страницата, което подхожда за предпочитания като тема.