Kann ich sicherstellen, dass Tastaturbefehle nicht von Browserskripten abgefangen werden?

Ist es möglich, Safari zu optimieren, um sicherzustellen, dass Befehlstastenkombinationen wie Hoder Lzu Safari gehen, im Gegensatz zu Safaris Fensterinhalten?

Dies kommt mir auf dieser Site am häufigsten vor , weil das Editorfenster (wie dort, wo ich gerade tippe) diese Tastenanschläge erfasst, um Überschriften und Links zu erstellen, aber im Allgemeinen scheint es eine Sicherheitslücke zu sein, die es Websites ermöglicht, Befehlstastenanschläge zu erfassen .

Bitte beachten Sie, dass ich nach einer Möglichkeit suche, dies zu tun, ohne JavaScript vollständig zu deaktivieren.

Was auch immer es wert ist, ich leite Mountain Lion.

Sie können NinjaKit verwenden, um die auf Stack Exchange-Sites verwendeten Verknüpfungen zu deaktivieren. Siehe apple.stackexchange.com/questions/60587 und meta.stackexchange.com/questions/2980 .
Das ist großartig, @LauriRanta, und es hilft bei diesem speziellen Problem, aber als allgemeine Sicherheitslücke würde ich gerne eine Möglichkeit finden, um zu verhindern, dass bösartige Websites ⌘W oder ⌘Q abfangen, ohne einfach JavaScript zu deaktivieren.
Ich habe das Sicherheitsetikett hinzugefügt. Denn zu wissen, welcher Teil einer Anwendung die Tastatur liest ( hört ), ist eine grundlegende Sicherheitsfunktion. Wenn eine Tastatur - Listener -Änderung von der Menüleiste angezeigt wurde, würden viele auf Sniffer basierende Angriffe als Kakerlaken wirken, wenn Sie das Licht einschalten.
@DanielLawson Würde diese Open-Source-Safari-Erweiterung javascript-blocker.toggleable.com helfen

Antworten (1)

Die einzige todsichere Möglichkeit, Tastatureingaben durch JavaScript zu vermeiden, besteht darin, JavaScript im Browser zu deaktivieren.

Ich verstehe, dass Sie JavaScript eingeschaltet lassen möchten, aber es wurde entwickelt, um die nahezu vollständige Kontrolle über rohe Tastendrücke an den Browser und nicht an die App zu übergeben, sobald das Betriebssystem ihm Eingabedaten übergibt. Das bedeutet, dass Sie für jede Implementierung der Tastaturfilterung auf potenziell jeder einzelnen Seite/Site eine spezifische Codelösung benötigen würden, um sicherzustellen, dass willkürliche Tastenakkorde wie Command H an Safari statt an JavaScript gesendet werden.

Sehen Sie sich diese Links an, um einen Überblick darüber zu erhalten, wie Tastendrücke gehandhabt werden:

Der letzte Link ist ein Tester, der Ihnen die rohen Ereignisse zeigt, und Sie werden sehen, dass sogar ein kurzes ⌘Q von JavaScript abgefangen werden kann, wenn der Website-Entwickler dies wünscht.

Der Tastaturtreiber ist Teil des Betriebssystems, also leitet das Betriebssystem die Tastenanschläge an den Browser weiter, der die Tastenanschläge an den Webinhalt weiterleitet, der dann anscheinend entscheidet, welche Tastenanschläge an den Browser und/oder das Betriebssystem zurückgegeben werden…
Es ist wahrscheinlich noch komplizierter als das mit der Komplexität von Kernel Space / User Space / API und Framework.