Puis-je m'assurer que les commandes du clavier ne sont pas bloquées par les scripts du navigateur?

14

Est-il possible de modifier Safari pour garantir des combinaisons de touches de commande comme Hou Laller à Safari par opposition au contenu de la fenêtre de Safari?

Cela me vient le plus souvent sur ce site parce que la fenêtre de l'éditeur (comme là où je tape en ce moment) capture ces frappes pour créer des en-têtes et des liens, mais en général, cela semble être un trou de sécurité pour permettre aux sites de capturer les frappes de commande .

Veuillez noter que je cherche un moyen de le faire sans désactiver complètement JavaScript.

Pour tout ce que ça vaut, je dirige Mountain Lion.

Daniel
la source
4
Vous pouvez utiliser NinjaKit pour désactiver les raccourcis utilisés sur les sites Stack Exchange. Voir apple.stackexchange.com/questions/60587 et meta.stackexchange.com/questions/2980 .
Lri
1
C'est génial, @LauriRanta, et cela aide à résoudre ce problème spécifique, mais en tant que faille de sécurité générale, j'aimerais trouver un moyen d'empêcher les sites Web malveillants de piéger ⌘W ou ⌘Q sans simplement désactiver JavaScript.
Daniel
J'ai ajouté la balise de sécurité. Parce que savoir quelle partie d'une application lit ( écoute ) le clavier est une fonction de sécurité de base. Si un changement d' écouteur du clavier était affiché par la barre de menu, de nombreuses attaques basées sur des renifleurs feraient office de coackroaches lorsque vous allumez la lumière.
dan
@DanielLawson Cette extension open source Safari aiderait-elle javascript-blocker.toggleable.com
Simon

Réponses:

2

Le seul moyen infaillible d'éviter d'avoir une entrée de clavier piège JavaScript est de désactiver JavaScript dans le navigateur.

Je comprends que vous souhaitez laisser JavaScript activé, mais il est conçu pour transmettre le contrôle quasi total des pressions de touches brutes au navigateur et non à l'application une fois que le système d'exploitation lui a transmis des données. Cela signifie que vous auriez besoin d'une solution de code spécifique pour chaque implémentation du filtrage du clavier sur potentiellement chaque page / site individuel pour garantir que les accords de touches arbitraires comme la commande H soient envoyés à Safari au lieu de JavaScript.

Voir ces liens pour un aperçu de la façon dont les touches sont gérées:

Le dernier lien est un testeur pour vous montrer les événements bruts et vous verrez que même un bref ⌘Q peut être piégé par JavaScript si le développeur du site le souhaite.

bmike
la source
Le pilote du clavier fait partie du système d' exploitation, de sorte que le système d' exploitation passe les frappes au navigateur, qui passe les frappes au contenu Web, qui semble alors se décider qui les frappes de touches pour passer revenir au navigateur et / ou OS ...
Daniel
C'est probablement encore plus compliqué que cela avec les complexités espace noyau / espace utilisateur / API et framework.
bmike