aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/http/headers/set-cookie/samesite/index.html
blob: e1bb88995c465272d6dcedc4ce60a0ba9ca3f9ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
title: SameSite cookies
slug: Web/HTTP/Headers/Set-Cookie/SameSite
tags:
  - Referências
translation_of: Web/HTTP/Headers/Set-Cookie/SameSite
---
<p>O atributo <span class="seoSummary"> <strong><code>SameSite</code></strong> </span> do <span class="seoSummary">{{HTTPHeader("Set-Cookie")}} </span>. O cabeçalho de resposta HTTP permite que você declare se o seu cookie deve ser restrito a um contexto de primeira ou mesma parte.</p>

<h2 id="Valores">Valores</h2>

<p>The <code>SameSite</code> aceita três valores:</p>

<h3 id="Lax"><code>Lax</code></h3>

<p>Os cookies podem ser enviados com navegação de alto nível e serão enviados juntamente com a solicitação GET iniciada pelo site de terceiros. Este é o valor padrão nos navegadores modernos.</p>

<h3 id="Strict"><code>Strict</code></h3>

<p>Os cookies serão enviados apenas em um contexto de primeira parte e não serão enviados juntamente com solicitações iniciadas por sites de terceiros.</p>

<h3 id="None"><code>None</code></h3>

<p>Cookies serão enviados em todos os contextos, ou seja, é permitido enviar origem cruzada.</p>

<p><code>None</code> costumava ser o valor padrão, mas as versões recentes do navegador fizeram <code>Lax</code> o valor padrão para ter uma defesa razoavelmente robusta contra algumas classes de falsificação de solicitações entre sites ({{Glossary("CSRF")}}).</p>

<p><code>None</code> requer o atributo <a href="#Secure"><code>Secure</code></a> nas versões mais recentes do navegador. Veja abaixo para mais informações.</p>

<h2 id="Fixação_de_avisos_comuns">Fixação de avisos comuns</h2>

<h3 id="SameSiteNone_requer_Secure"><code>SameSite=None</code> requer <code>Secure</code></h3>

<p>O aviso a seguir pode aparecer no seu console:</p>

<blockquote>
<p>Alguns cookies estão usando mal o atributo "sameSite", então não funcionará como esperado.<br>
 Cookie "myCookie" rejeitado porque tem o atributo "sameSite=none", mas está perdendo o atributo "seguro".</p>
</blockquote>

<p>O aviso aparece porque qualquer cookie que solicitar <code>SameSite=None</code> mas não está marcado <code>Secure</code> será rejeitado.</p>

<pre class="example-bad notranslate">Set-Cookie: flavor=choco; SameSite=None</pre>

<p>Para corrigir isso, você terá que adicionar o atributo <code>Secure</code> aos seus cookies <code>SameSite=None</code>.</p>

<pre class="example-good notranslate">Set-Cookie: flavor=choco; SameSite=None; <strong>Secure</strong></pre>

<p>Um cookie <a href="#Secure"><code>Secure</code></a> só é enviado ao servidor com uma solicitação criptografada sobre o protocolo HTTPS. Observe que sites inseguros (http:) não pode definir cookies com a diretiva <code>Secure</code>.</p>

<h3 id="Cookies_sem_padrão_SameSite_para_SameSiteLax">Cookies sem padrão <code>SameSite</code> para <code>SameSite=Lax</code></h3>

<p>Versões recentes de navegadores modernos fornecem um padrão mais seguro para <code>SameSite</code> para seus cookies e assim a seguinte mensagem pode aparecer no seu console:</p>

<blockquote>
<p>Alguns cookies estão usando mal o atributo "sameSite", então não funcionará como esperado.<br>
 Cookie "myCookie" tem a política "sameSite" definida como "frouxa" porque está faltando um atributo "sameSite" e "sameSite=lax" é o valor padrão para este atributo.</p>
</blockquote>

<p>O aviso aparece porque a política <code>SameSite</code> para um cookie não especificou explicitamente:</p>

<pre class="example-bad notranslate">Set-Cookie: flavor=choco</pre>

<p>Embora você possa confiar em navegadores modernos para aplicar <code>SameSite=Lax</code> automaticamente, você deve sim especificá-lo explicitamente para comunicar claramente sua intenção que <code>SameSite</code> política se aplica ao seu cookie. Isso também melhorará a experiência entre os navegadores, pois nem todos eles são padrão para <code>Lax</code> ainda.</p>

<pre class="example-good notranslate">Set-Cookie: flavor=choco; <strong>SameSite=Lax</strong></pre>

<h2 id="Examplo"><strong>Examplo:</strong></h2>

<pre class="notranslate">RewriteEngine on
RewriteBase "/"
RewriteCond "%{HTTP_HOST}"       "^example\.org$" [NC]
RewriteRule "^(.*)"              "https://www.example.org/index.html" [R=301,L,QSA]
RewriteRule "^(.*)\.ht$"         "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:01:https://www.example.org:30/:SameSite=None:Secure]
RewriteRule "^(.*)\.htm$"        "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:02:https://www.example.org:30/:SameSite=None:Secure]
RewriteRule "^(.*)\.html$"       "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:03:https://www.example.org:30/:SameSite=None:Secure]
[...]
RewriteRule "^admin/(.*)\.html$" "admin/index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:09:https://www.example.org:30/:SameSite=Strict:Secure]
</pre>

<h2 id="Especificações">Especificações</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Title</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{RFC("6265", "Set-Cookie", "4.1")}}</td>
   <td>Mecanismo de gestão do estado HTTP</td>
  </tr>
  <tr>
   <td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-05">draft-ietf-httpbis-rfc6265bis-05</a></td>
   <td>Cookie Prefixes, Same-Site Cookies, e Strict Secure Cookies</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Compatibilidade com navegadores</h2>

<p>{{Compat("http.headers.Set-Cookie", 5)}}</p>

<h2 id="Veja_também">Veja também:</h2>

<ul>
 <li><a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookies</a></li>
 <li>{{HTTPHeader("Cookie")}}</li>
 <li>{{domxref("Document.cookie")}}</li>
</ul>