From a1fd7eaebc76af1a23cef26df0776088fb542ac4 Mon Sep 17 00:00:00 2001 From: RedrockJS Date: Sat, 1 Nov 2025 11:33:51 +0300 Subject: [PATCH] fix: update cookie --- docs/browser/07-cookie.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/browser/07-cookie.md b/docs/browser/07-cookie.md index d75e987..c76f010 100644 --- a/docs/browser/07-cookie.md +++ b/docs/browser/07-cookie.md @@ -42,8 +42,34 @@ document.cookie = "username=John; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/" - `max-age` – время жизни в секундах (альтернатива `expires`). - `path=/` – на каких страницах доступна cookie (по умолчанию текущий путь). - `domain` – для какого домена (по умолчанию текущий). -- `secure` – передавать только по HTTPS. +- `secure` – передавать **только по HTTPS**. + - Cookie отправляется **только через зашифрованное** соединение (HTTPS). + - При HTTP-запросах cookie **не будет отправлено**. + - 🔥 Чтобы защитить cookie от перехвата через незашифрованные соединения (MITM-атаки). +- `HttpOnly` - Запрещает доступ к cookie из **JavaScript** + - Cookie доступно **только серверу** (через HTTP-заголовки). + - JS-код не сможет прочитать, изменить или удалить cookie. + - 🔥 Чтобы защитить cookie от кражи при **XSS-атаках**. - `samesite` – защита от CSRF (`Strict`, `Lax`, `None`). + - `Strict` — cookie **отправляется только** при переходе в пределах одного сайта. + - `Lax` — cookie отправляется при **некоторых межсайтовых переходах**, например, при переходе по ссылке (GET-запросы). + - `None` — cookie отправляется всегда, даже с других сайтов, но **требует флага** `Secure`. + - 🔥 Чтобы предотвратить **CSRF-атаки** — когда сайт пытается заставить пользователя отправить запрос на другой домен, используя его авторизационные cookie. + +| Параметр | Назначение | Защищает от | +|------------|--------------------------------------------|------------------------| +| `Secure` | Отправлять cookie только по HTTPS | Перехват cookie (MITM) | +| `HttpOnly` | Запретить доступ из JavaScript | XSS | +| `SameSite` | Контролировать межсайтовую отправку cookie | CSRF | + +💡 Пример безопасного cookie +```http request +Set-Cookie: sessionId=abc123; Secure; HttpOnly; SameSite=Strict +``` +Такой cookie: +- Не будет передан по HTTP, +- Не доступен через JS, +- Не будет отправлен при запросах с других сайтов. 📌 Изменение cookie Просто перезапишите её с тем же именем: