Собственост SameSite
Започвайки с Chrome 51, към бисквитките на браузъра е добавен нов атрибут SameSite, за да се предотвратят CSRF атаки и потребителско проследяване (злонамерено получаване на бисквитки от трети страни) и да се ограничи използването на бисквитки от трети страни, като по този начин се намаляват рисковете за сигурността.
SameSite, дефиниран в RFC6265bis:Входът към хиперлинк е видим.
Обзор на атаката на CSRF:
Свойството SameSite може да бъде зададено на три стойности:Strict、Lax、None。
Строг: Строго забранявайте на трети страни да получават бисквитки и не изпращайте бисквитки при никакви обстоятелства при различни сайтове; Бисквитките ще бъдат включени само ако URL адресът на текущата страница съвпада с целевата заявка. Това правило е твърде строго и може да причини много лошо потребителско изживяване. Например, ако има линк към GitHub на текущата уеб страница, потребителите няма да имат GitHub бисквитки, когато кликнат върху скока, а скокът винаги е бил нелогиран.
Лакс: Предотвратяване на крос-сайт, в повечето случаи е забранено да се получават бисквитки, с изключение на GET заявки (връзки, предварително зареждане, GET формуляри), които навигират до дестинационния URL; След като се настроят Strict или Lax, CSRF атаките практически се елиминират. Разбира се, това е при условие, че потребителският браузър поддържа свойството SameSite.
Атрибут SameSiteПо подразбиране SameSite=LAX[Тази операция се прилага за версии след като Google пусне стабилната Chrome 80 версия на 4 февруари 2019 г.]
Никой: Няма граница.
Атрибутът Secure също трябва да бъде зададен (бисквитките могат да се изпращат само по HTTPS протокола), в противен случай той няма да бъде валиден. [Тази операция се прилага за версии след като Google пусне стабилната Chrome 80 версия на 4 февруари 2019 г.]
Тествайте свойството на SameSite
Динамично зареждаме снимка на обект А през конзолата F12 на място А, кодът е следният:
Виждаме от мрежовата заявка, че когато сайт А поиска изображение на домейна на сайт А, той щеНосете бисквитки(SameSite няма настройки, т.е. Lax), както е показано на изображението по-долу:
Случайно намираме B сайт, след което динамично зареждаме снимката на A сайт и го намирамеНе носяВсяка бисквитка, както е показано по-долу:
(Край)
|