Свойство SameSite
Начиная с Chrome 51, в файлы cookie браузера был добавлен новый атрибут SameSite, чтобы предотвратить CSRF-атаки и отслеживание пользователей (вредоносное получение файлов cookie третьими сторонами), а также ограничить использование сторонних файлов cookie, тем самым снижая риски безопасности.
SameSite, определённый в RFC6265bis:Вход по гиперссылке виден.
Обзор атак CSRF:
Свойство SameSite можно установить на три значения:Strict、Lax、None。
Строгий: Строго запрещать третьим лицам получать файлы cookie и не отправлять файлы cookie ни при каких обстоятельствах при кросс-сайтах; Файлы cookie будут включены только в том случае, если URL текущей страницы совпадает с целевым запросом. Это правило слишком строгое и может привести к очень плохому пользовательскому опыту. Например, если на текущей веб-странице есть ссылка на GitHub, пользователи не получат куки GitHub при переходе, и переход всегда не входит.
Слабый: Предотвращение межсайтового взаимодействия, в большинстве случаев запрещено получать файлы cookie, за исключением GET-запросов (ссылок, предзагрузки, GET-формы), которые переключаются к адресу получателя; Как только установлены Строгий или Слабый, CSRF-атаки практически исчезают. Конечно, это при условии, что пользовательский браузер поддерживает свойство SameSite.
Атрибут SameSiteDefault SameSite=Lax[Эта операция применяется к версиям после того, как Google выпустил стабильную версию Chrome 80 4 февраля 2019 года]
Никакой: Нет предела.
Атрибут Secure также должен быть задан (cookies можно отправлять только через протокол HTTPS), иначе он будет невалиден. [Эта операция применяется к версиям после того, как Google выпустил стабильную версию Chrome 80 4 февраля 2019 года]
Протестируйте свойство SameSite
Мы динамически загружаем изображение площадки A через консоль F12 на площадке A, код выглядит следующим образом:
Из сетевого запроса видно, что когда сайт А запрашивает изображение доменного имени сайта А, он будетНоси печенье(У SameSite нет настроек, то есть LAX), как показано на изображении ниже:
Мы случайным образом находим B-сайт, затем динамически загружаем изображение сайта A и находим егоНе ношуЛюбое печенье, как показано ниже:
(Конец)
|