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 man-in-the-middle attackers de aceder as APis poderosas que poderiam comprometer ainda mais a vítima de um ataque .
Porque é que algumas funcionalidades deveriam ser restritas?
Algumas APIs na Web são muito poderosas, dando a um atacante a capacidade para fazer o seguinte e muito mais:
- Invadir a privacidade do utilizador.
- Obter acesso de baixo nível ao computador do utilizador.
- Obter acesso aos dados, tal como as credenciais do utilizador.
Quando é que um contexto é considerado seguro?
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.
Deteção de funcionalidade
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 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ções
Especificação | Estado | Comentário |
Unknown | Unknown | Editor’s Draft |
Compatibilidade de navegador
Funcionalidade | Chrome | Firefox (Gecko) | Internet Explorer | Microsoft Edge | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Suporte básico | (Yes)[1] | (Yes) | No support | ? | (Yes)[1] | (Yes)[1] |
Funcionalidade | Android | Android Webview | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Suporte básico | No support | (Yes)[1] | (Yes) | No support | (Yes)[1] | (Yes)[1] | (Yes)[1] |
[1] A implementação ainda não está completa.
Consulte também
- Funcionalidades da plataforma restringidas para contextos seguros — uma lista de funcionalidades disponíveis apenas nos contextos seguros
Window.isSecureContext
("Contextos seguros")- http://permission.site — Um site que lhe permite verificar qual a permissão da API que o seu navegador emprega, sobre HTTP e HTTPS.
|
|
|
|
|
|
|
Opções : Histórico : Comentários : Donate | Encerrar |