aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/http/headers/set-cookie
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/web/http/headers/set-cookie')
-rw-r--r--files/pt-br/web/http/headers/set-cookie/index.html167
-rw-r--r--files/pt-br/web/http/headers/set-cookie/samesite/index.html114
2 files changed, 281 insertions, 0 deletions
diff --git a/files/pt-br/web/http/headers/set-cookie/index.html b/files/pt-br/web/http/headers/set-cookie/index.html
new file mode 100644
index 0000000000..35857d6b4b
--- /dev/null
+++ b/files/pt-br/web/http/headers/set-cookie/index.html
@@ -0,0 +1,167 @@
+---
+title: Set-Cookie
+slug: Web/HTTP/Headers/Set-Cookie
+translation_of: Web/HTTP/Headers/Set-Cookie
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>O cabeçalho de resposta HTTP <strong><code>Set-Cookie</code></strong> é usado para enviar cookies de um servidor para o agente usuário.</p>
+
+<p>Para mais informações, veja o guia em <a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookies</a>.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Sintaxe">Sintaxe</h2>
+
+<pre class="syntaxbox">Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; Expires=&lt;date&gt;
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; Max-Age=&lt;non-zero-digit&gt;
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; Domain=&lt;domain-value&gt;
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; Path=&lt;path-value&gt;
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; Secure
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; HttpOnly
+
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; SameSite=Strict
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; SameSite=Lax
+
+// São possíveis multiplas diretivas, por exemplo:
+Set-Cookie: &lt;nome-cookie&gt;=&lt;valor-cookie&gt;; Domain=&lt;domain-value&gt;; Secure; HttpOnly
+</pre>
+
+<h2 id="Diretivas">Diretivas</h2>
+
+<dl>
+ <dt><code>&lt;nome-cookie&gt;=&lt;valor-cookie&gt;</code></dt>
+ <dd>Um cookie começa com um par nome-valor:
+ <ul>
+ <li>Um <code>&lt;nome-cookie&gt;</code> pode ser qualquer caractere US-ASCII exeto caracteres de controle (CTLs), espaços, ou tabulações (TAB). Também não deve conter um separador de caractere como os seguintes: ( ) &lt; &gt; @ , ; : \ " /  [ ] ? = { }.</li>
+ <li>Um <code>&lt;valor-cookie&gt;</code> pode opcionalmente ser atribuido entre aspas duplas e qualquer caractere US-ASCII são permitidos, exceto caracteres de controle (CTLs), espaços em branco, aspas duplas, vírgula, barra invertida e ponto e vírgula. <strong>Codificação</strong>: Muitas implementações realizam  codificação URL nos valores de cookie, contudo não é obrigatório pela especificação do RFC. Isso ajuda a satisfazer os requisitos sobre quais caracteres são permitidos para &lt;valor-cookie&gt;.</li>
+ <li><strong><code>Prefixo __Secure-</code></strong>: Cookies com o nome começando com <code>__Secure-</code> (hífen faz parte do prefixo) precisam ser atribuidos com a flag de segurança e precisam ser de uma página segura (HTTPS).</li>
+ <li><strong><code>Prefixo __Host-</code></strong>: Cookies com o nome começando com <code>__Host- </code>(hífen faz parte do prefixoprecisam ser atribuidos com a flag de segurança, precisam ser de uma página segura (HTTPS), não precisam ter um domínio especificado (portanto não são enviados para subdomínios) e o caminho (path) precisa ser "/".</li>
+ </ul>
+ </dd>
+ <dt>Expires=&lt;data&gt; {{optional_inline}}</dt>
+ <dd>O tempo de vida máximo do cookie como uma marcação de tempo (timestamp) HTTP. Veja {{HTTPHeader("Date")}} para a formatação detalhada. Se não especificado, o cookie terá o tempo de vida de uma <strong>sessão de cookie. </strong>Uma sessão é finalizada quando o cliente é desligado, significando que as sessões de cookies serão removidos nesse momento. Contudo, muitos navegadores web têm uma característica denominada de "restaurar sessão" que salvará todas suas abas e as trará de volta na próxima vez em que você utilizar o navegador. Os cookies estarão também presentes e será como se o navegador nunca tivesse sido fechado.</dd>
+ <dt></dt>
+ <dd>
+ <p>Quando uma data de expiração é atribuída, o tempo e a data são relativos ao cliente em que os cookies estão sendo configurados e não ao servidor.</p>
+ </dd>
+ <dt>Max-Age=&lt;digito-diferente-de-0&gt; {{optional_inline}}</dt>
+ <dd>Número de segundos até o cookie expirar. Um ou mais digitos de 1 a 9. Navegadores antigos (ie6, ie7 e ie8) não suportam Max-Age. Para cada navegador, se ambos (Expires e Max-Age) forem atribuídos, Max-Age terá precedência.</dd>
+ <dt>Domain=&lt;valor-domínio&gt; {{optional_inline}}</dt>
+ <dd>Especifica os hosts aos quais o cookie será enviado.
+ <ul>
+ <li>Se não for especificado, será usado o host do URL do documento atual, não incluindo subdomínios.</li>
+ <li>Ao contrário das especificações anteriores, pontos de prefixo em nomes de domínio (<code>.example.com</code>) são ignorados.</li>
+ <li>Se um domínio for especificado, subdomínios estarão sempre incluídos.</li>
+ </ul>
+ </dd>
+ <dt>Path=&lt;valor-caminho&gt; {{optional_inline}}</dt>
+ <dd>Indica um caminho (path) de URL que necessita existir no recurso solicitado antes de enviar o cabeçalho de Cookie. O caractere %x2F ("/") é interpretado como um separador de diretório e os sub-diretórios serão também correspondidos (por exemplo: Path=/docs, "/docs", "/docs/Web", ou "/docs/Web/HTTP" serão todos correspondidos).</dd>
+ <dt>Secure {{optional_inline}}</dt>
+ <dd>Um cookie seguro apenas será enviado para o servidor quando uma requisição utilizando os protocol SSL e HTTPS for realizada. No entanto, informações confidenciais ou sensíveis não deverão ser armazenadas ou transmitidas em Cookies HTTP pois todo o mecanismo é inerentemente inseguro e isso não significa, por exemplo que qualquer informação é criptografada.
+ <p class="note"><strong>Nota:</strong> Sites inseguros (<code>http:</code>)  não podem mais atribuir cookies com a diretiva "secure" (novo em Chrome 52+ firefox Firefox 52+).</p>
+ </dd>
+ <dt>HttpOnly {{optional_inline}}</dt>
+ <dd>Cookies HttpOnly não são acessíveis via JavaScript através da propriedade {{domxref("Document.cookie")}}, as API's {{domxref("XMLHttpRequest")}} e {{domxref("Request")}} são utilizadas para aliviar ataques de cross-site scripting ({{Glossary("XSS")}}).</dd>
+ <dt>SameSite=Strict<br>
+ SameSite=Lax {{optional_inline}} {{experimental_inline}}</dt>
+ <dd>Permite que servidores garantam que um cookie não deve ser enviado juntamente com solicitações de sites cruzados (cross-site) , o que fornece novamente alguma proteção aos ataques de falsificação de solicitação entre sites (CSRF)  ({{Glossary("CSRF")}})<em> .</em></dd>
+</dl>
+
+<h2 id="Exemplos">Exemplos</h2>
+
+<h3 id="Sessão_de_cookie">Sessão de cookie</h3>
+
+<p>Sessão de cookie serão removidos quando o cliente desligar. Eles não especificam as diretivas Expires ou Max-Age. Note que o navegador web tem frequentemente  a opção "restaurar sessão" habilitada..</p>
+
+<pre>Set-Cookie: sessionid=38afes7a8; HttpOnly; Path=/</pre>
+
+<h3 id="Cookie_permanente">Cookie permanente</h3>
+
+<p>Ao invés de expirar quando o cliente fecha, os cookies permantentes expiram numa data especificada (Expires), ou depois de uma duração de tempo especificada (Max-Age).</p>
+
+<pre>Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
+</pre>
+
+<h3 id="Domínios_inválidos">Domínios inválidos</h3>
+
+<p>Um cookie pertencente a um domínio que não inclui o servidor original,  <a href="https://tools.ietf.org/html/rfc6265#section-4.1.2.3">deve ser rejeitado pelo agente usuário</a>.  Por exemplo: O cookie seguinte será rejeitado se foi atribuído por um servidor hospedado em originalcompany.com.</p>
+
+<pre>Set-Cookie: qwerty=219ffwef9w0f; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2019 00:00:00 GMT</pre>
+
+<h3 id="Prefixo_do_cookie">Prefixo do cookie</h3>
+
+<p>Nomes de cookies com os prefixos "__Secure-" e "__Host-" podem ser utilizados apenas de eles forem atribuídos com a diretiva "secure" de uma origem segura (HTTPS).  Além disso, cookies com o prefixo "__Host-" devem ter um caminho (path) de "/" (o host inteiro) e não devem ter um atributo de dominio. Para clientes que não implementam prefixos de cookie, você não pode contar com essas garantias adicionais e os cookies serão sempre aceitos.</p>
+
+<pre>// Ambos aceitos quando de uma origem segura (HTTPS)
+Set-Cookie: __Secure-ID=123; Secure; Domain=example.com
+Set-Cookie: __Host-ID=123; Secure; Path=/
+
+// Rejeitado devido a não atribuição da diretiva Secure
+Set-Cookie: __Secure-id=1
+
+// Rejeitado devido a falta da diretiva Path=/
+Set-Cookie: __Host-id=1; Secure
+
+// Rejeitado devido a atribuição de um domínio
+Set-Cookie: __Host-id=1; Secure; Path=/; domain=example.com
+</pre>
+
+<h2 id="Especificações">Especificações</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificação</th>
+ <th scope="col">Título</th>
+ </tr>
+ <tr>
+ <td>{{RFC("6265", "Set-Cookie", "4.1")}}</td>
+ <td>HTTP State Management Mechanism</td>
+ </tr>
+ <tr>
+ <td>{{RFC("draft-ietf-httpbis-cookie-prefixes-00")}}</td>
+ <td>Cookie Prefixes</td>
+ </tr>
+ <tr>
+ <td>{{RFC("draft-ietf-httpbis-cookie-same-site-00")}}</td>
+ <td>Same-Site Cookies</td>
+ </tr>
+ <tr>
+ <td>{{RFC("draft-ietf-httpbis-cookie-alone-01")}}</td>
+ <td>Strict Secure Cookies</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2>
+
+<p class="hidden">A tabela de compatibilidade desta página é gerada a partir das estrutura de dados. Se você quiser contribir com os dados, verifique <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e nos envie um pull request.</p>
+
+<p>{{Compat("http.headers.Set-Cookie")}}</p>
+
+<h2 id="Notas_de_compatibilidade">Notas de compatibilidade</h2>
+
+<ul>
+ <li>Começando com Chrome 53 e Firefox 52, sites inseguros (<code>http:</code>) não podem mais atribuir cookies com a diretiva "secure".</li>
+</ul>
+
+<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>
diff --git a/files/pt-br/web/http/headers/set-cookie/samesite/index.html b/files/pt-br/web/http/headers/set-cookie/samesite/index.html
new file mode 100644
index 0000000000..08b3240d24
--- /dev/null
+++ b/files/pt-br/web/http/headers/set-cookie/samesite/index.html
@@ -0,0 +1,114 @@
+---
+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">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<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>