Многие не совсем понимают, как работают cookies
1111
Многие не совсем понимают, как работают cookies.
Вот основы, которые необходимо знать, чтобы лучше использовать их в своих проектах.
Cookies - это просто HTTP-заголовки.
Вы можете отправить запрос и добавить cookie вручную с помощью любого HTTP-клиента:
--header "Cookie: mycookie=cookievalue" http://localhost:8000
Волшебство заключается в том, как браузеры обрабатывают куки.
Браузеры автоматически добавляют файлы cookie, которые хранятся у них в памяти, к HTTP-запросам, которые они выполняют.
Но существуют правила.
Это очень полезно для аутентификации пользователей и выполнения API-запросов!
Но Интернет - не безопасное место. Cookies могут быть использованы хакерами, чтобы выдавать себя за пользователей!
Поэтому браузеры проявляют к ним повышенную осторожность. Существует множество свойств для обеспечения их безопасности:
— Expires/Max-Age - cookie автоматически удаляется по истечении указанного времени.
— HTTPOnly - куки нельзя прочитать с помощью кода JavaScript. Доступ к нему имеет только браузер.
— Secure - cookie отправляется только при запросе по HTTPS/SSL. Чувствительные значения находятся в безопасности, потому что их не может прочитать " посредник".
При разработке backend сервера, ВЫ отвечаете за установку этих флагов.
Чтобы указать браузеру сохранить cookie, просто добавьте заголовок Set-Cookie в один из ваших HTTP-ответов:
200 OK
content-length: 4
content-type: application/json
date: Tue, 08 Nov 2022 09:41:42 GMT
server: uvicorn
set-cookie: mycookie=cookievalue; Path=/; SameSite=lax
Для чувствительных значений, таких как сессия пользователя, флаги HTTPOnly и Secure являются КРИТИЧЕСКИ важными.
200 OK
content-length: 4
content-type: application/json
date: Tue, 08 Nov 2022 09:45:59 GMT
server: uvicorn
set-cookie: user_session=SENSITIVE_TOKEN; HttpOnly; Path=/; SameSite=lax; Secure
В противном случае существует риск, что злоумышленники могут их украсть!
Речь идет об атаке Cross-Site Request Forgery (CSRF). В то время были реализованы специальные меры защиты для предотвращения этого.
Поэтому браузеры ввели новый куки флаг: SameSite.
SameSite сообщает браузеру, следует ли ему отправлять cookie или нет в межсайтовом контексте.
Значение по умолчанию, Lax, отправляет cookie, только если вы находитесь на одном и том же сайте.
Это защищает от большинства атак CSRF.
Значение None, с другой стороны, является "open-bar": cookie отправляется всегда. Это то, что используют инструменты аналитики для отслеживания вас, пресловутые сторонние куки (third-party cookies).
@MikeBlazerX
Ссылки из поста:– https://twitter.com/fvoron/status/1589930616371679...
– https://t.me/MikeBlazerX
Источник новости https://t.me/mikeblazerx/807...

