Zpracování změn souborů cookie SameSite v prohlížeči Chrome
Co je SameSite?
SameSite
je vlastnost, která se dá nastavit v souborech cookie HTTP, aby se zabránilo útokům CSRF (Cross Site Request Forgery) ve webových aplikacích:
- Pokud
SameSite
je nastavena na Lax, soubor cookie se odesílá v žádostech na stejném webu a v žádostech GET z jiných webů. V požadavcích GET, které jsou mezi různými doménami, se neodesílají. - Hodnota Strict zajišťuje, aby se soubor cookie odesílal v požadavcích pouze na stejném webu.
Ve výchozím nastavení SameSite
není hodnota nastavena v prohlížečích a proto neexistují žádná omezení pro odesílání souborů cookie v požadavcích. Aplikace by se potřebovala přihlásit k ochraně CSRF nastavením Lax nebo Strict podle svých požadavků.
Změny samesite a vliv na ověřování
Nedávné aktualizace standardů na samesite navrhují ochranu aplikací tím, že nastaví výchozí chování SameSite
, když není nastavena žádná hodnota Lax. Tato mitigace znamená, že soubory cookie budou omezeny na požadavky HTTP, s výjimkou těch GET, které jsou provedeny z jiných webů. Kromě toho se zavádí hodnota None , která odstraňuje omezení při odesílání souborů cookie. Tyto aktualizace budou brzy vydány v nadcházející verzi prohlížeče Chrome.
Když se webové aplikace ověřují pomocí platformy Microsoft Identity Platform pomocí režimu odpovědi "form_post", přihlašovací server odpoví na aplikaci pomocí http POST k odeslání tokenů nebo ověřovacího kódu. Vzhledem k tomu, že tento požadavek je žádost napříč doménami (například z login.microsoftonline.com
do vaší domény - https://contoso.com/auth
), soubory cookie, které vaše aplikace nastavila, nyní spadají pod nová pravidla v Chromu. Soubory cookie, které je potřeba použít ve scénářích napříč weby, jsou soubory cookie, které obsahují hodnoty stav a nonce, které se také posílají v žádosti o přihlášení. Existují další soubory cookie, které microsoft Entra ID zahodí za účelem uchování relace.
Pokud webové aplikace neaktualizujete, výsledkem tohoto nového chování bude selhání ověřování.
Zmírnění rizik a ukázky
K překonání selhání ověřování můžou webové aplikace, které se ověřují pomocí platformy Microsoft Identity, nastavit SameSite
vlastnost None
pro soubor cookie používaný ve scénářích mezi doménami při spuštění v prohlížeči Chrome.
Ostatní prohlížeče (viz tady úplný seznam) se řídí předchozím chováním SameSite
a neobsahují soubory cookie, pokud SameSite=None
jsou nastavené.
To je důvod, proč pro podporu ověřování ve více prohlížečích webové aplikace bude nutné nastavit SameSite
hodnotu None
pouze v Prohlížeči Chrome a ponechat hodnotu prázdnou v jiných prohlížečích.
Tento přístup je ukázaný v následujícím vzorovém kódu.
Následující tabulka obsahuje pull requesty, které v našich ukázkách pro ASP.NET a ASP.NET Core vyřešily změny SameSite.
Podrobnosti o zpracování souborů cookie SameSite v ASP.NET a ASP.NET Core najdete také:
Další kroky
Další informace o samesite a scénáři webové aplikace: