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
113
114
115
116
117
118
119
120
121
122
|
---
title: Strict-Transport-Security
slug: Web/HTTP/Headers/Strict-Transport-Security
tags:
- HSTS
- HTTP
- HTTPS
- Segurança
- header
translation_of: Web/HTTP/Headers/Strict-Transport-Security
---
<div>{{HTTPSidebar}}</div>
<p>O cabeçalho de resposta <strong>HTTP <code>Strict-Transport-Security</code></strong> (geralmente abreviado como {{Glossary("HSTS")}}) permite que um site informe aos navegadores que ele deve ser acessado apenas por HTTPS, em vez de usar HTTP.</p>
<table class="properties">
<tbody>
<tr>
<th scope="row">Tipo de Cabeçalho</th>
<td>{{Glossary("Cabeçalho de Resposta")}}</td>
</tr>
<tr>
<th scope="row">{{Glossary("Nome do cabeçalho proibido")}}</th>
<td>não</td>
</tr>
</tbody>
</table>
<h2 id="Sintaxe">Sintaxe</h2>
<pre class="syntaxbox">Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; preload
</pre>
<h2 id="Diretivas">Diretivas</h2>
<dl>
<dt><code>max-age=<expire-time></code></dt>
<dd>O tempo, em segundos, que o navegador deve lembrar que um site só pode ser acessado usando HTTPS.</dd>
<dt><code>includeSubDomains</code> {{optional_inline}}</dt>
<dd>Se este parâmetro opcional for especificado, esta regra também será aplicada a todos os subdomínios do site.</dd>
<dt><code>preload</code> {{optional_inline}}</dt>
<dd>Consulte {{anch("Preloading Strict Transport Security")}} <font>para detalhes. </font><font>Não faz parte da especificação.</font></dd>
</dl>
<h2 id="Descrição">Descrição</h2>
<p><font>Se um site aceitar uma conexão por meio de HTTP e redirecionar para HTTPS, os visitantes poderão se comunicar inicialmente com a versão não criptografada do site antes de serem redirecionados, se, por exemplo, o visitante digitar http://www.foo.com/ ou até mesmo apenas foo.com </font><font>Isso cria uma oportunidade para um ataque man-in-the-middle. </font><font>O redirecionamento pode ser explorado para direcionar os visitantes a um site mal-intencionado em vez da versão segura do site original.</font></p>
<p>O cabeçalho HTTP Strict Transport Security informa ao navegador que ele nunca deve carregar um site usando HTTP e deve converter automaticamente todas as tentativas de acessar o site usando HTTP para solicitações HTTPS.</p>
<div class="note"><strong>Nota:</strong> O cabeçalho <code>Strict-Transport-Security</code> <font><font>é </font></font><strong><font><font>ignorado</font></font></strong><font><font> pelo navegador quando seu site é acessado usando HTTP; </font><font>isso ocorre porque um invasor pode interceptar conexões HTTP e injetar o cabeçalho ou removê-lo. </font><font>Quando seu site é acessado por HTTPS sem erros de certificado, o navegador sabe que seu site é capaz de HTTPS e honrará o </font></font><code>Strict-Transport-Security</code><font><font>cabeçalho.</font></font></div>
<h3 id="Um_cenário_de_exemplo"><font><font>Um cenário de exemplo</font></font></h3>
<p> </p>
<p><font><font>Você faz login em um ponto de acesso Wi-Fi gratuito em um aeroporto e começa a navegar na Web, visitando seu serviço bancário on-line para verificar seu saldo e pagar algumas contas. </font><font>Infelizmente, o ponto de acesso que você está usando é, na verdade, o laptop de um hacker, e ele está interceptando sua solicitação HTTP original e redirecionando você para um clone do site do seu banco, em vez do real. </font><font>Agora seus dados privados são expostos ao hacker.</font></font></p>
<p><font><font>Segurança de Transporte Estrito (</font></font>Strict Transport Security<font><font>) resolve esse problema; d</font><font>esde que você tenha acessado o site do seu banco uma vez usando HTTPS, e o site do banco use o Strict Transport Security, seu navegador saberá usar automaticamente apenas HTTPS, o que impede que os hackers realizem um ataque man-in-the-middle.</font></font></p>
<p> </p>
<h3 id="Como_o_navegador_lida_com_isso"><font><font> Como o navegador lida com isso</font></font></h3>
<p> </p>
<p><font><font>Na primeira vez em que seu site é acessado usando HTTPS e retorna o cabeçalho </font></font><code>Strict-Transport-Security</code><font><font>, o navegador registra essas informações, para que futuras tentativas de carregar o site usando HTTP usem o HTTPS automaticamente.</font></font></p>
<p><font><font>Quando o tempo de expiração especificado pelo cabeçalho Strict-Transport-Security expirar, a próxima tentativa de carregar o site via HTTP prosseguirá normalmente, em vez de usar automaticamente o HTTPS.</font></font></p>
<p><font><font>Sempre que o cabeçalho Strict-Transport-Security for entregue ao navegador, ele atualizará o tempo de expiração desse site, para que os sites possam atualizar essas informações e impedir que o tempo limite expire. </font><font>Caso seja necessário desativar a Segurança de Transporte Restrita, a configuração da duração máxima para 0 (através de uma conexão https) expirará imediatamente o cabeçalho </font></font><code>Strict-Transport-Security</code><font><font>, permitindo o acesso via http.</font></font></p>
<p> </p>
<h2 id="Pré-Carregamento_-_Strict_Transport_Security">Pré-Carregamento - Strict Transport Security</h2>
<p><font><font>O Google mantém </font></font><a href="https://hstspreload.appspot.com/" rel="noopener"><font><font>um serviço de pré-carregamento de HSTS</font></font></a><font><font>. </font><font>Ao seguir as diretrizes e enviar seu domínio com sucesso, os navegadores nunca se conectarão ao seu domínio usando uma conexão insegura. </font><font>Enquanto o serviço é hospedado pelo Google, todos os navegadores declararam a intenção de usar (ou de fato começaram a usar) a lista de pré-carregamento. </font><font>No entanto, não faz parte da especificação da HSTS e não deve ser tratada como oficial.</font></font></p>
<ul>
<li>Informações sobre a lista de pré-carregamento de HSTS no Chrome: <a href="https://www.chromium.org/hsts">https://www.chromium.org/hsts</a></li>
<li>Consulta da lista de pré-carregamento do Firefox HSTS: <a href="https://dxr.mozilla.org/comm-central/source/mozilla/security/manager/ssl/nsSTSPreloadList.inc">nsSTSPreloadList.inc</a></li>
</ul>
<h2 id="Exemplos">Exemplos</h2>
<p><font>Todos os subdomínios presentes e futuros serão HTTPS para uma idade máxima de 1 ano. </font><font>Isso bloqueia o acesso a páginas ou subdomínios que só podem ser veiculados por HTTP.</font></p>
<pre>Strict-Transport-Security: max-age=31536000; includeSubDomains</pre>
<h2 id="Especificações">Especificações</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificação</th>
<th scope="col">Status</th>
<th scope="col">Comentário</th>
</tr>
<tr>
<td>{{SpecName('HSTS')}}</td>
<td>{{Spec2('HSTS')}}</td>
<td>Initial definition</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilidade_do_navegador"><font><font>Compatibilidade do navegador</font></font></h2>
<p class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estruturados. Se você quiser contribuir com os dados, confira <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e envie-nos um pedido de pull (pull request).</p>
<p>{{Compat("http.headers.Strict-Transport-Security")}}</p>
<h2 id="Veja_também"><font><font>Veja também</font></font></h2>
<ul>
<li>Postagem no blog: <a class="external" href="http://blog.sidstamm.com/2010/08/http-strict-transport-security-has.html">HTTP Strict Transport Security has landed!</a></li>
<li>Postagem no blog: <a class="external" href="http://hacks.mozilla.org/2010/08/firefox-4-http-strict-transport-security-force-https/">HTTP Strict Transport Security (force HTTPS)</a></li>
<li>Artigo OWASP: <a href="https://www.owasp.org/index.php/HTTP_Strict_Transport_Security">HTTP Strict Transport Security</a></li>
<li>Wikipedia: <a href="http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security">HTTP Strict Transport Security</a></li>
</ul>
|