Czy mogę się upewnić, że polecenia klawiatury nie zostaną uwięzione przez skrypty przeglądarki?

14

Czy można ulepszyć Safari, aby zapewnić kombinacje klawiszy poleceń Hlub Lprzejść do Safari w przeciwieństwie do zawartości okna Safari?

Najczęściej pojawia się to na tej stronie, ponieważ okno edytora (jak tam, gdzie teraz piszę) przechwytuje te naciśnięcia klawiszy, aby tworzyć nagłówki i linki, ale ogólnie wydaje się, że dziura w zabezpieczeniach pozwala stronom na przechwytywanie klawiszy .

Pamiętaj, że szukam sposobu, aby to zrobić bez całkowitego wyłączenia JavaScript.

Za cokolwiek jest wart, prowadzę Mountain Lion.

Daniel
źródło
4
Za pomocą NinjaKit można wyłączyć skróty używane w witrynach Stack Exchange. Zobacz apple.stackexchange.com/questions/60587 i meta.stackexchange.com/questions/2980 .
Lri
1
To niesamowite, @LauriRanta, i pomaga w rozwiązaniu tego konkretnego problemu, ale jako ogólna dziura w zabezpieczeniach, chciałbym znaleźć sposób, aby zapobiegać pułapkowaniu maliciousW lub ⌘Q przez złośliwe witryny bez wyłączania JavaScript.
Daniel
Dodałem tag bezpieczeństwa. Ponieważ wiedza, która część aplikacji czyta ( nasłuchuje ), jest podstawową funkcją bezpieczeństwa. Jeśli na pasku menu wyświetlana jest jakakolwiek zmiana nasłuchiwania klawiatury , wiele ataków opartych na snifferach działałoby jako koacroache po włączeniu światła.
dan
@DanielLawson Czy to rozszerzenie Safari o otwartym kodzie źródłowym pomoże javascript-blocker.toggleable.com
Simon

Odpowiedzi:

2

Jedynym pewnym sposobem na uniknięcie wprowadzania danych z klawiatury JavaScript pułapki jest wyłączenie JavaScript w przeglądarce.

Rozumiem, że chcesz pozostawić włączony JavaScript, ale jest on zaprojektowany tak, aby przekazać prawie całkowitą kontrolę nad surowymi naciśnięciami klawiszy do przeglądarki, a nie do aplikacji, gdy system operacyjny poda dane wejściowe. Oznacza to, że będziesz potrzebować konkretnego rozwiązania kodowego dla każdej implementacji filtrowania klawiatury na potencjalnie każdej stronie / stronie, aby zapewnić, że dowolne akordy klawiszowe, takie jak Command H, zostaną przesłane do Safari zamiast JavaScript.

Zobacz te linki, aby zobaczyć, jak obsługiwane są naciśnięcia klawiszy:

Ostatni link to tester pokazujący nieprzetworzone zdarzenia, a zobaczysz, że nawet krótkie ⌘Q może zostać uwięzione przez JavaScript, jeśli twórca strony zechce to zrobić.

bmike
źródło
Sterownik klawiatury jest częścią systemu operacyjnego, więc system operacyjny przekazuje naciśnięcia klawiszy do przeglądarki, która przekazuje te klawisze do treści internetowej, która najwyraźniej następnie decyduje, które klawisze mają być przekazywane z powrotem do przeglądarki i / lub systemu operacyjnego…
Daniel
Prawdopodobnie jest to nawet bardziej skomplikowane niż w przypadku przestrzeni jądra / przestrzeni użytkownika / API i złożoności frameworka.
bmike