Ответ
SameSite — это атрибут cookie, который определяет, будут ли куки отправляться с кросс-сайтовыми запросами. Он помогает защитить от CSRF-атак и предотвращает утечку данных.
Значения:
- Strict — куки отправляются только в рамках текущего домена.
- Lax (по умолчанию в современных браузерах) — куки отправляются при безопасных методах (GET) и навигации.
- None — куки отправляются всегда (требует Secure).
Пример:
document.cookie = "session=123; SameSite=Lax; Secure";
Нюансы:
- Для
SameSite=Noneобязательно указыватьSecure(HTTPS). - В старых браузерах может не поддерживаться.
Ответ 18+ 🔞
А, слушай, про эту вашу SameSite-хуяSite, ну, это ж просто пиздец как важно, а многие про неё нихуя не знают, как про свою бабушку в деревне!
Короче, представляешь: это такой сторожевой пёс для твоих куков. Сидит и решает, отправлять ли их с тобой, когда ты шастаешь по другим сайтам. Чтобы всякие пидарасы не могли украсть твою сессию и зайти в твой аккаунт, как к себе домой. Это типа защита от CSRF-атак, ну, когда тебя обманом заставляют нажать на какую-то ебучую кнопку.
Вот какие у него три режима, как у утюга:
- Strict (Строгий) — это прям мажордом-хуяждом. Куки ни нахуй не выйдут за пределы своего родного сайта. Зашел с левого сайта — нихуя, без сессии. Надёжно, но иногда пользователи охуевают, когда их выкидывает.
- Lax (Свободный, но не совсем) — это по умолчанию сейчас. Нормальный пацан. Разрешает взять куки с собой, если ты переходишь по обычной ссылке (GET-запросом). Но если какой-то скрипт с левого сайта пытается отправить POST-запрос — получает пизды и уходит ни с чем.
- None (Вообще похуй) — отправляем куки всем, всегда и везде. Но, внимание, ёпта! Чтобы этим пользоваться, ты обязан сидеть на HTTPS (
Secure), иначе браузер тебе просто посылает нахуй. Безопасность, мать её!
Вот тебе пример, как это в коде выглядит, чтоб не пиздел, что не видел:
document.cookie = "session=123; SameSite=Lax; Secure";
А теперь главные подводные ебалы, на которых все пиздятся:
- Хочешь
SameSite=None? ГотовьSecure! Иначе твои куки — говно, их никто не увидит. Это железное правило, блядь. - Старые браузеры, как старые пердуны, могут эту хуйню не понимать и вести себя непредсказуемо. Так что тестировать надо, а не просто тыкать и молиться.
Вот и вся магия. Казалось бы, ерунда, а из-за неё половина авторизаций на межсайтовых виджетах ломается. Чих-пых тебя в сраку, не забывай про эту настройку!