SameSite-egenskapen
Fra og med Chrome 51 har et nytt SameSite-attributt blitt lagt til i nettleserens informasjonskapsler for å forhindre CSRF-angrep og brukersporing (ondsinnet tredjeparts innhenting av informasjonskapsler), og for å begrense tredjepartscookies, og dermed redusere sikkerhetsrisikoen.
SameSite definert i RFC6265bis:Innloggingen med hyperkoblingen er synlig.
Om CSRF-angrepsoppsummering:
SameSite-egenskapen kan settes til tre verdier:Strict、Lax、None。
Streng: Forby strengt tredjepart å få tilgang til informasjonskapsler, og ikke send informasjonskapsler under noen omstendigheter når de er på tvers av nettsteder; Cookies vil kun bli inkludert hvis URL-en til den nåværende siden samsvarer med forespørselsmålet. Denne regelen er for streng og kan føre til en veldig dårlig brukeropplevelse. For eksempel, hvis det finnes en GitHub-lenke på den nåværende nettsiden, vil brukerne ikke ha GitHub-informasjonskapsler når de klikker på hoppet, og hoppet har alltid vært avlogget.
Slapp: Forhindre kryss-nettsted, i de fleste tilfeller er det forbudt å hente informasjonskapsler, bortsett fra GET-forespørsler (lenker, forhåndsinnlastinger, GET-skjemaer) som navigerer til destinasjons-URL-en; Når Strict eller Lax er satt, elimineres CSRF-angrep i praksis. Selvfølgelig forutsetter dette at brukernettleseren støtter SameSite-egenskapen.
SameSite-attributtDefault SameSite=Lax[Denne operasjonen gjelder for versjoner etter at Google lanserte Chrome 80 stabil versjon 4. februar 2019]
Ingen: Det finnes ingen grenser.
Secure-attributtet må også være satt (informasjonskapsler kan kun sendes over HTTPS-protokollen), ellers vil det ikke være gyldig. [Denne operasjonen gjelder for versjoner etter at Google lanserte Chrome 80 stabil versjon 4. februar 2019]
Test SameSite-egenskapen
Vi laster dynamisk inn et bilde av sted A gjennom F12-konsollen på sted A, koden er som følger:
Vi kan se fra nettverksforespørselen at når sted A ber om et bilde av domenenavnet til sted A, vil det gjøre detBær kjeks(SameSite har ingen innstillinger, altså Lax), som vist på bildet nedenfor:
Vi finner tilfeldig et B-sted, og laster deretter dynamisk inn bildet av A-stedet og finner detIkke bærendeEnhver kjeks, som vist nedenfor:
(Slutt)
|