在浏览器和操作系统级别禁用除字母之外的所有内容

alp*_*ius 17 windows linux keyboard-shortcuts input interactive

我们希望让互动展览变得万无一失,在从任何人所做的任何事情中恢复它时,需要尽可能少的工作人员在场。

它有一个文本输入,然后输出一些东西。我认为最简单的方法是根本不给他们鼠标,只给他们一个始终专注于单个输入字段的键盘。然后禁用所有可能的快捷键和特殊键,仅保留字母、空格、退格键和 Enter。

我们在操作系统以及 UI 是 HTML 页面还是桌面应用程序方面都很灵活。但显然 Windows(或标准的 Linux 发行版)和 HTML 页面是最好的。我们可能需要后端的 GPU 驱动程序。

尝试用谷歌搜索,但也许我没有偶然发现正确的关键字,因为我们不是第一个遇到这个问题的人。但话又说回来,大多数互动展品的安全保障都很差。

Tet*_*jin 30

取下所有“非法”键帽并将键盘安装在切口后面,以便仅暴露允许的按键。

\n

没有可按的“非法”键,无需对操作系统执行任何特殊操作。您将主管键盘放在幕后。

\n
\n

我曾经从事零售业的“多媒体”展示工作。在零售业,你很快就会发现,阻止公众搞乱事情的唯一方法就是取消所有可能搞乱事情的访问权限。我们过去常常将这样的键盘安装在定制的钢制外壳中,并用螺栓固定。如果少了一点,就会有人设法破坏或偷走它。不要购买脆弱的键盘,或者瘦的人可以轻松地将键帽从\xe2\x80\xa6 中翻转出来,否则他们就会这样做。

\n

请注意,除了窃取所有键帽之外,人们喜欢做的事情还有 - 删除您的应用程序和/或他们可以访问的任何其他内容。将桌面图片更改为非常非常不合适的\xe2\x80\xa6 或我最喜欢的\xe2\x80\xa6 设置超级用户密码,从而将您锁定在自己的计算机之外。

\n

有趣的是,最有趣的一个[对于所涉及的公司来说非常昂贵,因为他们不允许我们通过 VPN 进入系统,所以它总是必须是现场访问,为此我们向他们收取了一大笔费用] 是客户无法“不能打破它,但工作人员可以。工作人员会想知道为什么它没有互联网接入。他们会“聪明地”发现 DHCP 已关闭并启用它。这会破坏整个结构,所以他们有互联网(这是不应该的),但他们的应用程序无法运行,因为它被硬编码到他们自己的内部服务器,位于办公室 10 码之外。\n哦,怎么了我每次都笑\xe2\x80\xa6 & 拿钱来“修复”它,当然,这花了大约30秒。

\n

  • 稍微昂贵的选择是购买一个“固件”可编程键盘 - 运行 QMK 或 Via 的键盘。如果您使用的是 60% 的键盘,那么许多按键*甚至不存在*。然后,您可以将键盘*在硬件中*设置为仅支持您想要的按键。如果您有热插拔机械键盘,您还可以移除实际的开关以确保确定性并降低外形,并在开关上使用强力胶或仔细的环氧树脂键帽? (6认同)
  • 如果你没有在切口上紧密贴合,可以用巧妙弯曲的回形针绕过这个问题 (2认同)

Džu*_*ris 17

您正在寻找的称为“信息亭”。

\n

根据您的预算,您可以购买或租用专用机器。它们被称为“交互式信息亭”或“信息亭计算机”。它们配备了相当安全的触摸屏或坚固的内置键盘。他们通常有一个轨迹球。

\n

如果您认为它太昂贵并且想花时间,您应该采用像 Porteus Kiosk 这样的专用操作系统,它允许您禁用您想要禁用的所有内容,并在每次重新启动时将计算机恢复到初始配置,即使有人设法搞砸了。但是您必须自己管理硬件安全 \xe2\x80\x94 将塔锁定在某个外壳中,根据需要防止故意破坏等等。

\n
\n

但显然 Windows(或标准的 Linux 发行版)和 HTML 页面是最好的。

\n
\n

抱歉,我认为没有任何标准操作系统适合这个角色。但应用程序本身肯定可以是一个 Web 应用程序(即 HMTL 页面),这可能是几乎所有信息亭解决方案都支持的最简单且最受支持的选项。

\n


min*_*ill 11

如果适合您的预算,您还可以考虑使用触摸屏并开发一个简单的 JS 键盘


Fak*_*ame 9

我已经做了类似的事情,以便使用 USB 数字键盘作为软件的自定义控制输入。

基本上,无需处理操作系统保护或其他选项,而是直接使用 . 打开“安全”键盘libusb

这为您提供了一个带有(相对)简单界面的完整键盘,除了您的特定应用程序之外,它实际上无法与任何东西交互。当我这样做时,我通过 VID 从平台 HID 驱动程序中屏蔽了特定键盘,因此如果我的软件没有运行,它就不会显示为普通键盘。

您可以将 Windows 和/或 Linux 配置为对特定 USB VID/PID 元组使用 libusb。

在非信息亭模式下访问系统就像使用不同制造商或具有不同部件号的键盘一样简单。


yyn*_*yny 6

您可以使用 Linux DRMlibcairo API 使用例如(具有字体渲染支持)直接绘制到屏幕,使用 拦截输入事件libinput,并禁用所有 vtty。可能有点过头了,但它会让你完全控制你的软件堆栈,防止滥用键盘快捷键、访问恶意网站、打开应用程序等。据我从业内人士、一些汽车制造商和广告中听到的消息广告牌使用这种方法等。


小智 6

对于 Windows 的嵌入式版本之一来说,这可能是一个很好的用例。

Windows 10 IoT Core是一个精简、简约的 Windows 版本,仅允许单个预定义的 UWP 程序在前台运行。没有任务栏或桌面,因此甚至无法明显看出您正在运行 Windows。您将程序设计为全屏运行,系统将在启动时直接引导到该程序。

Windows 的各种 IoT 版本还具有许多可能对您的用例有用的其他功能(某些功能仅在某些版本中可用):

  • 统一写入过滤器- 防止写入硬盘。相反,写入会转到虚拟覆盖层,该覆盖层在重新启动时会被清除。如果有人搞乱了系统,只需重新启动即可恢复正常。
  • 键盘过滤器- 阻止某些按键或组合键。
  • Shell 启动器- 使用您的程序作为操作系统“shell”,而不是普通的桌面/任务栏。当程序终止时,它将重新启动。