Чи можу я переконатися, що команди клавіатури не потрапляють у сценарії браузера?


14

Чи можливо налаштувати Safari, щоб забезпечити комбінації командних клавіш, наприклад, ⌘Hабо ⌘Lперейти до Safari на відміну від вмісту вікна Safari?

Це найчастіше для мене з'являється на цьому сайті, тому що вікно редактора (як, де я зараз набираю текст) фіксує ці натискання клавіш, щоб створювати заголовки та посилання, але загалом це здається діркою безпеки, що дозволяє сайтам фіксувати командні натискання клавіш .

Зауважте, що я шукаю спосіб це зробити, не вимикаючи JavaScript взагалі.

Що б то не було, я біжу на гірський лев.


4
Ви можете використовувати NinjaKit для відключення ярликів, які використовуються на сайтах Stack Exchange. Див. Apple.stackexchange.com/questions/60587 та meta.stackexchange.com/questions/2980 .
— Лрі

1
Це дивовижно, @LauriRanta, і це допомагає у вирішенні цієї конкретної проблеми, але, як загальний отвір у безпеці, я хотів би отримати спосіб запобігти зловмисним веб-сайтам від лову ⌘W або ⌘Q, не вимкнувши JavaScript.
— Даниїл

Я додав тег безпеки. Оскільки знати, яка частина програми читає ( слухає ) клавіатуру - це основна функція безпеки. Якщо будь-яка зміна слухача клавіатури відображалася на панелі меню, багато атак, заснованих на сніферах, будуть виконуватись як зловмисники, коли ви включаєте світло.
— дан

@DanielLawson Чи допоможе це розширення Safari з відкритим вихідним кодом javascript-blocker.toggleable.com
— Саймон

Відповіді:


2

Єдиний надійний спосіб уникнути введення вловлювача клавіатури JavaScript - це відключити JavaScript у браузері.

Я розумію, що ви хочете залишити JavaScript, але він розроблений так, щоб передати майже повний контроль над натисканням клавіш на браузер, а не на додаток, як тільки ОС передає вхідні дані. Це означає, що вам знадобиться певне рішення коду для кожної реалізації фільтрації на клавіатурі на потенційно кожній окремій сторінці / сайті, щоб забезпечити надсилання довільних акордів ключів, таких як Command H, на Сафарі замість JavaScript.

Перегляньте ці посилання для огляду способів обробки натискань на клавіші:

Останнє посилання - це тестер, який показує вам необґрунтовані події, і ви побачите, що навіть короткий ⌘Q може бути захоплений JavaScript, якщо розробник веб-сайту захоче це зробити.


Драйвер клавіатури є частиною ОС, тому ОС передає натискання клавіш на браузер, який передає натискання клавіш на веб-контент, який, очевидно, потім отримує рішення про те, які натискання клавіш повернути до браузера та / або ОС…
— Даніель

Це, мабуть, ще складніше, ніж це з простором ядра / простором користувача / API та складними рамками.
— bmike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.