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

 
G
M
T
 
 
 
 
 
 
 
 
 
 
 
 
A função de fala é limitada a 200 caracteres
 
 
Opções : Histórico : Comentários : Donate Encerrar

Etiquetas do documento e contribuidores

 Contribuidores para esta página: mansil, Sheppy
 Última atualização por: mansil,