我可以确保键盘命令不会被浏览器脚本所束缚吗?


14

是否可以对Safari进行调整以确保与Safari的窗口内容相对应的命令键组合像HL转到Safari?

在我这个网站上,最经常出现在我的网站上,因为编辑器窗口(如我现在所键入的位置)捕获了这些击键来制作标题和链接,但总的来说,这似乎是一个安全漏洞,允许站点捕获命令击键。

请注意,我正在寻找一种无需完全禁用JavaScript的方法。

无论值多少钱,我都在经营Mountain Lion。


4
您可以使用NinjaKit禁用Stack Exchange网站上使用的快捷方式。参见apple.stackexchange.com/questions/60587meta.stackexchange.com/questions/2980
Lri

1
@LauriRanta真棒,它可以解决这个特定问题,但是作为一个常规的安全漏洞,我很想一种方法来防止恶意网站捕获⌘W或⌘Q而不仅仅禁用JavaScript。
丹尼尔

我添加了安全标签。因为要知道应用程序的哪个部分正在读取(监听),键盘是一项基本的安全功能。如果菜单栏显示了键盘侦听器的任何更改,则当您打开灯时,许多基于嗅探器的攻击将作为蟑螂。
2013年

@DanielLawson这个开源Safari扩展是否可帮助javascript-blocker.toggleable.com
Simon,

Answers:


2

避免使用JavaScript陷阱键盘输入的唯一保证方法是在浏览器中禁用JavaScript。

我了解您想继续使用JavaScript,但是一旦操作系统将其输入数据,它就可以将对原始按键的几乎完全控制权传递给浏览器,而不是应用程序。这意味着您可能需要针对每个潜在页面/站点上的键盘过滤的每种实现的特定代码解决方案,以确保将任意命令和弦(例如Command H)发送到Safari而不是JavaScript。

有关如何处理按键的概述,请参见以下链接:

最后一个链接是一个测试器,用于向您显示原始事件,如果网站开发人员希望这样做,您将看到即使是简短的⌘Q也可能被JavaScript捕获。


键盘驱动程序是操作系统的一部分,因此操作系统将击键传递到浏览器,浏览器将击键传递到Web内容,然后显然可以决定将哪些击键传递浏览器和/或OS…
Daniel

它可能比内核空间/用户空间/ API和框架复杂性还要复杂。
bmike
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.