Propriedade SameSite
A partir do Chrome 51, um novo atributo SameSite foi adicionado aos cookies do navegador para prevenir ataques CSRF e rastreamento de usuários (aquisição maliciosa de cookies por terceiros), além de limitar cookies de terceiros, reduzindo assim riscos de segurança.
SameSite definido no RFC6265bis:O login do hiperlink está visível.
Sobre o Resumo do Ataque CSRF:
A propriedade SameSite pode ser definida para três valores:Strict、Lax、Nenhum。
Estrito: Proíbe estritamente terceiros de obter cookies e não envia cookies sob nenhuma circunstância quando estiver em cross-site; Cookies só serão incluídos se a URL da página atual corresponder ao destino da solicitação. Essa regra é muito rígida e pode causar uma experiência muito ruim para o usuário. Por exemplo, se houver um link do GitHub na página atual, os usuários não terão cookies do GitHub ao clicarem no salto, e o salto sempre foi deslogado.
Frouxo: Prevenir o cross-site, na maioria dos casos é proibido obter cookies, exceto para solicitações GET (links, pré-carregamentos, formulários GET) que navegam até a URL de destino; Uma vez que Rígido ou Lax está definido, os ataques CSRF são basicamente eliminados. Claro, isso é garantido que o navegador de usuário suporte a propriedade SameSite.
Atributo SameSitePadrão SameSite=Lax[Esta operação se aplica às versões após o Google lançar a versão estável do Chrome 80 em 4 de fevereiro de 2019]
Nenhum: Não há limite.
O atributo Secure também deve ser definido (cookies só podem ser enviados pelo protocolo HTTPS), caso contrário, ele não será válido. [Esta operação se aplica às versões após o Google lançar a versão estável do Chrome 80 em 4 de fevereiro de 2019]
Teste a propriedade SameSite
Carregamos dinamicamente uma imagem do local A pelo console F12 no local A, o código é o seguinte:
Podemos ver pela solicitação da rede que, quando o site A solicita uma imagem do nome de domínio do site A, ele seráCarregue cookies(O SameSite não possui configurações, ou seja, Lax), como mostrado na imagem abaixo:
Encontramos aleatoriamente um local B e então carregamos dinamicamente a imagem do local A e encontramosNão está carregandoQualquer cookie, como mostrado abaixo:
(Fim)
|