Posso garantire che i comandi da tastiera non vengano intrappolati dagli script del browser?


14

È possibile modificare Safari per garantire combinazioni di tasti di comando simili Ho Landare su Safari rispetto al contenuto della finestra di Safari?

Questo mi viene in mente molto spesso su questo sito perché la finestra dell'editor (come dove sto scrivendo in questo momento) acquisisce queste sequenze di tasti per creare intestazioni e collegamenti, ma in generale sembra una falla di sicurezza per consentire ai siti di acquisire sequenze di tasti di comando .

Tieni presente che sto cercando un modo per farlo senza disabilitare completamente JavaScript.

Per qualunque cosa valga, corro Mountain Lion.


4
Puoi usare NinjaKit per disabilitare le scorciatoie usate sui siti di Stack Stack. Vedi apple.stackexchange.com/questions/60587 e meta.stackexchange.com/questions/2980 .
Lri,

1
È fantastico, @LauriRanta, e aiuta con questo specifico problema, ma come buca di sicurezza generale, mi piacerebbe un modo per impedire a siti Web dannosi di intercettare ⌘W o ⌘Q senza semplicemente disabilitare JavaScript.
Daniel

Ho aggiunto il tag di sicurezza. Perché sapere quale parte di un'applicazione sta leggendo ( ascoltando ) la tastiera è una funzionalità di sicurezza di base. Se nella barra dei menu fosse visualizzato qualche cambiamento di listener da tastiera , molti attacchi basati su sniffer avrebbero fatto da sciami quando si accende la luce.
dan

@DanielLawson Questa estensione Safari open source aiuterebbe javascript-blocker.toggleable.com
Simon

Risposte:


2

L'unico modo infallibile per evitare l'input da tastiera trap di JavaScript è disabilitare JavaScript nel browser.

Capisco che vorresti lasciare JavaScript attivo, ma è progettato per passare quasi il controllo totale delle pressioni dei tasti non elaborati al browser e non all'app una volta che il sistema operativo gli ha fornito i dati di input. Ciò significa che avresti bisogno di una soluzione di codice specifica per ogni implementazione del filtro da tastiera su potenzialmente ogni singola pagina / sito per garantire che accordi di tasti arbitrari come il Comando H vengano inviati a Safari anziché JavaScript.

Vedi questi collegamenti per una panoramica di come vengono gestite le pressioni dei tasti:

L'ultimo link è un tester per mostrarti gli eventi non elaborati e vedrai che anche un breve ⌘Q può essere intrappolato da JavaScript se lo sviluppatore del sito Web desidera farlo.


Il driver della tastiera fa parte del sistema operativo, quindi il sistema operativo passa le sequenze di tasti al browser, che passa le sequenze di tasti al contenuto Web, che a quanto pare decide quindi quali sequenze di tasti restituire al browser e / o al sistema operativo ...
Daniel

Probabilmente è ancora più complicato di quello con lo spazio del kernel / spazio utente / API e complessità del framework.
bmike
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.