|
|
Publicerad den 2022-4-17 20:24:47
|
|
|
|

SameSite-egendomen
Från och med Chrome 51 har ett nytt attribut SameSite lagts till i webbläsarens cookies för att förhindra CSRF-attacker och användarspårning (illvillig tredjepartsförvärv av cookies) samt för att begränsa tredjepartscookies, vilket minskar säkerhetsriskerna.
SameSite definierad i RFC6265bis:Inloggningen med hyperlänken är synlig.
Om CSRF-attacksammanfattning:
SameSite-egenskapen kan sättas till tre värden:Strikt、Lax、Ingen。
Sträng: Förbjud strikt tredje part att få tag på cookies, och skicka inte cookies under några omständigheter när man korsar sajten; Cookies inkluderas endast om URL:en på den aktuella sidan matchar förfrågningsmålet. Denna regel är för strikt och kan orsaka en mycket dålig användarupplevelse. Till exempel, om det finns en GitHub-länk på den aktuella webbsidan, kommer användare inte att ha GitHub-cookies när de klickar på hoppet, och hoppet har alltid varit avloggat.
Slapp: Förhindra cross-site, i de flesta fall är det förbjudet att hämta cookies, förutom för GET-förfrågningar (länkar, förladdningar, GET-formulär) som navigerar till destinations-URL:en; När Strikt eller Lax är satt elimineras CSRF-attacker i princip. Naturligtvis förutsatt att användarens webbläsare stöder egenskapen SameSite.
SameSite-attributetDefault SameSite=Lax[Denna åtgärd gäller för versioner efter att Google släpper Chrome 80 stabil version den 4 februari 2019]
Ingen: Det finns ingen gräns.
Secure-attributet måste också sättas (cookies kan endast skickas via HTTPS-protokollet), annars är det inte giltigt. [Denna åtgärd gäller för versioner efter att Google släpper Chrome 80 stabil version den 4 februari 2019]
Testa egenskapen SameSite
Vi laddar dynamiskt en bild av plats A genom F12-konsolen på plats A, koden är följande:
Vi kan se från nätverksförfrågan att när plats A begär en bild av domännamnet för plats A, kommer den att göra detBärkakor(SameSite har inga inställningar, dvs. Lax), som visas på bilden nedan:
Vi hittar slumpmässigt en B-plats och laddar sedan dynamiskt bilden av A-plats och hittar denInte bäraVilken kaka som helst, som visas nedan:
(Slut)
|
Föregående:jQuery hide fungerar inte, två lösningarNästa:Vinkelelement ngif hidden visibility visas och döljs
|