Posso garantir que os comandos do teclado não sejam capturados pelos scripts do navegador?

14

É possível ajustar o Safari para garantir combinações de teclas de comando como Hou Lir para o Safari em vez do conteúdo da janela do Safari?

Isso aparece para mim com mais frequência neste site, porque a janela do editor (como onde estou digitando agora) captura essas teclas para criar títulos e links, mas, em geral, parece uma falha de segurança permitir que os sites capturem as teclas de comando .

Observe que estou procurando uma maneira de fazer isso sem desativar o JavaScript por completo.

Por tudo o que vale a pena, estou executando o Mountain Lion.

Daniel
fonte
4
Você pode usar o NinjaKit para desativar os atalhos usados ​​nos sites do Stack Exchange. Consulte apple.stackexchange.com/questions/60587 e meta.stackexchange.com/questions/2980 .
Lri
1
Isso é incrível, @LauriRanta, e ajuda com esse problema específico, mas como uma brecha geral na segurança, eu adoraria uma maneira de impedir que sites maliciosos capturassem ⌘W ou ⌘Q sem simplesmente desativar o JavaScript.
Daniel
Eu adicionei a etiqueta de segurança. Como saber qual parte de um aplicativo está lendo ( ouvindo ), o teclado é um recurso básico de segurança. Se qualquer alteração do ouvinte do teclado fosse exibida pela barra de menus, muitos ataques baseados em sniffers seriam usados ​​como co-baratas quando você acender a luz.
dan
@DanielLawson Esta extensão de código aberto do Safari ajudaria javascript-blocker.toggleable.com
Simon

Respostas:

2

A única maneira infalível de evitar a entrada do teclado de interceptação de JavaScript é desabilitar o JavaScript no navegador.

Entendo que você deseja deixar o JavaScript ativado, mas ele foi projetado para transmitir quase o controle total de pressionamentos de teclas brutas para o navegador e não para o aplicativo quando o sistema operacional entrega dados de entrada. Isso significa que você precisaria de uma solução de código específica para cada implementação de filtragem de teclado em potencial cada página / site individual para garantir que acordes de teclas arbitrários como o Comando H sejam enviados ao Safari em vez de JavaScript.

Consulte estes links para obter uma visão geral de como as teclas são pressionadas:

O último link é um testador para mostrar os eventos brutos e você verá que mesmo um breve Q pode ser interceptado por JavaScript, se o desenvolvedor do site desejar fazer isso.

bmike
fonte
O driver do teclado é parte do sistema operacional, de modo que o sistema operacional passa as teclas para o navegador, que passa as teclas para conteúdo web, que, aparentemente, em seguida, começa a decidir quais teclas para passar de volta para o navegador e / ou OS ...
Daniel
Provavelmente é ainda mais complicado que isso com complexidades de espaço no kernel / espaço do usuário / API e estrutura.
bmike