--- title: Contextos seguros slug: Web/Security/Secure_Contexts tags: - Contextos seguros - Segurança translation_of: Web/Security/Secure_Contexts ---
Um contexto de segurança é uma Window ou Worker para o qual há confiança razoável de que o conteúdo foi entregue com segurança (via HTTPS/TLS), e para o qual o potencial para a comunicação com contextos que não são seguros é limitado. Muitas APIs da Web e funcionalidades só são acessíveis num contexto seguro. O principal objetivo de contextos seguros é prevenir {{interwiki("wikipedia", "man-in-the-middle attack", "man-in-the-middle attackers")}} de aceder as APis poderosas que poderiam comprometer ainda mais a vítima de um ataque .
Algumas APIs na Web são muito poderosas, dando a um atacante a capacidade para fazer o seguinte e muito mais:
Um contexto será considerado seguro quando este for entregue com segurança (ou localmente), e quando ele não pode ser utilizado para fornecer acesso às APIs seguras para um contexto que não é seguro. Na prática, isto significa que, para que uma página tenha um contexto seguro, esta e todas as páginas a par dos seus originais e o abridor da cadeia devem ter sido entregues de uma forma segura .
Por exemplo, uma página entregue de forma segura em TLS não é considerada um contexto seguro se tiver um documento original ou antigo que não tenha sido entregue de forma segura, pois, de outra forma, a página poderá expor APIs sensíveis para um antigo não entregue de forma segura via mensagens postMessage. Da mesma forma, se um documento TLS entregue for aberto numa nova janela por um contexto inseguro sem ser especificado noopener, depois a janela aberta não é considerada um contexto seguro (uma vez que o abridor e a janela aberta poderão comunicar via PostMessage). .
Os ficheiros entregues localmente, tais como os caminhos http://localhost e ficheiro:// são considerados como sendo entregues de forma segura.
Os contextos que não são locais devem ser servidos sobre https:// ou wss:// e onde os protocolos utilizados não deverão ser considerados obsoletos.
As páginas podem utilizar a deteção de funcionalidade para verificar se elas estão num contexto seguro ou não, utilizando o booleano {{domxref("WindowOrWorkerGlobalScope.isSecureContext", "isSecureContext")}}, que é exposto num âmbito global.
if (window.isSecureContext) {
// Page is a secure context so service workers are now available
navigator.serviceWorker.register("/offline-worker.js").then(function () {
...
});
}
| Especificação | Estado | Comentário |
| {{SpecName('Contextos seguros')}} | {{Spec2('Contextos seguros')}} | Editor’s Draft |
{{CompatibilityTable}}
| Funcionalidade | Chrome | Firefox (Gecko) | Internet Explorer | Microsoft Edge | Opera | Safari (WebKit) |
|---|---|---|---|---|---|---|
| Suporte básico | {{CompatVersionUnknown}}[1] | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatVersionUnknown}}[1] | {{CompatVersionUnknown}}[1] |
| Funcionalidade | Android | Android Webview | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|---|
| Suporte básico | {{CompatNo}} | {{CompatVersionUnknown}}[1] | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatVersionUnknown}}[1] | {{CompatVersionUnknown}}[1] | {{CompatVersionUnknown}}[1] |
[1] A implementação ainda não está completa.
|
|
|
|
|
|
|
|
|
Opções : Histórico : Comentários : Donate | Encerrar |