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

14

Ist es möglich, Safari zu optimieren, um sicherzustellen, dass Befehlstastenkombinationen wie " Safari" Hoder " LSafari" im Gegensatz zum Fensterinhalt von Safari verwendet werden?

Dies kommt für mich auf dieser Site am häufigsten vor, weil das Editorfenster (wie das, in dem ich gerade tippe) diese Tastatureingaben aufzeichnet, um Überschriften und Links zu erstellen. Im Allgemeinen scheint es jedoch eine Sicherheitslücke zu sein, damit Websites Tastatureingaben von Befehlen erfassen können .

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

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

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

Antworten:

2

Die einzige todsichere Möglichkeit, die Eingabe einer JavaScript-Trap-Tastatur zu vermeiden, besteht darin, JavaScript im Browser zu deaktivieren.

Es ist klar, dass Sie JavaScript eingeschaltet lassen möchten, aber es wurde so konzipiert, dass nahezu die vollständige Kontrolle über das rohe Drücken von Tasten an den Browser und nicht an die App weitergegeben wird, sobald das Betriebssystem die eingegebenen Daten übermittelt. Dies bedeutet, dass Sie für jede Implementierung der Tastaturfilterung auf potenziell jeder einzelnen Seite / Site eine spezielle Codelösung benötigen, um sicherzustellen, dass beliebige Tastaturakkorde wie Command H anstelle von JavaScript an Safari gesendet werden.

Unter diesen Links finden Sie eine Übersicht über den Umgang mit Tastendrücken:

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

bmike
quelle
Der Tastaturtreiber ist Teil des Betriebssystems, so dass das OS die Tastenanschläge an den Browser übergibt, die die Tastenanschläge auf Web - Inhalte geht, die offenbar wird dann zu entscheiden , welche Tastatureingaben zu übergeben zurück an den Browser und / oder OS ...
Daniel
Es ist wahrscheinlich noch komplizierter als das mit den Komplexitäten von Kernel-Space / User-Space / API und Framework.
bmike