SameSite-egenskaben
Fra og med Chrome 51 er en ny SameSite-attribut blevet tilføjet til browserens cookies for at forhindre CSRF-angreb og brugersporing (ondsindet tredjeparts erhvervelse af cookies) samt for at begrænse tredjepartscookies, hvilket reducerer sikkerhedsrisici.
SameSite defineret i RFC6265bis:Hyperlink-login er synlig.
Om CSRF Attack Resumé:
SameSite-egenskaben kan sættes til tre værdier:Strict、Lax、Ingen。
Streng: Forbyd strengt tredjepart at få adgang til cookies, og send ikke cookies under nogen omstændigheder, når der krydser sider; Cookies vil kun blive inkluderet, hvis URL'en på den aktuelle side matcher anmodningsmålet. Denne regel er for streng og kan give en meget dårlig brugeroplevelse. For eksempel, hvis der er et GitHub-link på den aktuelle webside, vil brugerne ikke have GitHub-cookies, når de klikker på springet, og hoppet har altid været aflogget ind.
Slap: Forhindre cross-site, i de fleste tilfælde er det forbudt at indhente cookies, undtagen for GET-forespørgsler (links, forudindlæsninger, GET-formularer), der navigerer til destinations-URL'en; Når Strict eller Lax er sat, elimineres CSRF-angreb stort set. Selvfølgelig forudsætter dette, at brugerbrowseren understøtter SameSite-egenskaben.
SameSite-attributtenDefault SameSite=Lax[Denne operation gælder for versioner efter, at Google udgiver Chrome 80 stablet version den 4. februar 2019]
Ingen: Der er ingen grænse.
Secure-attributten skal også sættes (cookies kan kun sendes over HTTPS-protokollen), ellers vil den ikke være gyldig. [Denne operation gælder for versioner efter, at Google udgiver Chrome 80 stablet version den 4. februar 2019]
Test SameSite-egenskaben
Vi indlæser dynamisk et billede af sted A gennem F12-konsollen på sted A, koden er som følger:
Vi kan se fra netværksanmodningen, at når sted A anmoder om et billede af domænenavnet for sted A, vil detBær småkager(SameSite har ingen indstillinger, dvs. Lax), som vist på billedet nedenfor:
Vi finder tilfældigt et B-sted, og så indlæser vi dynamisk billedet af A-stedet og finder detIkke medEnhver cookie, som vist nedenfor:
(Slut)
|