NPAPI插件支持或类似支持用于读取智能卡。

3
现在ChromeFireFox(FF在较小程度上也是相关的)正在移除对NPAPI(基本上是Java)的支持,Edge(以前的Spartan)也不会有它,那么有什么替代方案吗?
我知道没有一种通用的替代方案,目前我还在努力寻找合适的东西。它需要连接到通过USB连接的NFC读卡器,并具有读写智能卡的能力。
我已经找到了各种选项,如Native Client,但这是Google特定的 - 它需要跨浏览器。
3个回答

2

FireBreath 2将支持此功能,因为您不需要绘图支持。如果您愿意动手,您可能可以将其用于您所需的内容,但您需要愿意帮助跟踪并修复错误等问题。

它目前在FireBreath的Github存储库的“重构”分支中,但我希望这种情况最终会发生改变。


考虑到使用NPAPI框架,这肯定也受到影响了吧? - tim.baker
FireBreath 2将其所有API更改为异步。现在它有3种浏览器访问方法,而不是2种:ActiveX、NPAPI和FireWyrm。 FireWyrm是专门为FireBreath 2开发的新的RPC机制,可以通过本地消息传递进行访问。截至撰写本文时,仍有很多工作要做,但已接近完成。 - taxilian

1
你可以使用任何语言编写本地REST服务,监听http://localhost:[some_custom_port]以与NFC读卡器通信。
然后,您只需要编写JavaScript来与REST服务通信。这应该适用于任何浏览器。
这种方法存在一些问题: - 每个带有NFC读卡器的PC都需要安装服务才能与NFC读卡器通信。 - 一些受限制的浏览器(如Metro IE)无法访问localhost。

如果 Edge,Windows 10 中的默认浏览器,不能访问本地主机(http://dev.modern.ie/platform/faq/how-can-i-debug-localhost/),那么这种方法就有一些严重的缺点。 - nemec

0
为了提供安全连接并支持所有浏览器,有一个解决方案看起来像是通过自定义URI在浏览器和本地桌面应用之间进行通信,并且通过Web服务从本地应用到浏览器的方式尝试。本地应用将处理阅读功能,实现似乎复杂但适用于安全通信。source

我没有理解你所指的中间人的明确上下文,但我想你是在询问一种攻击方式,我正在使用基于令牌的验证。我已经为我的标准代码库创建了一个新的存储库,很快会发布代码 链接 :) :) - krishnakumar sekar
所以你在客户端使用https服务器,我想你会将https服务器证书安装为受信任的根CA。对吧?这将危及你的用户隐私。 - lmiguelmh
我的exe(建议)没有使用那个证书进行签名,它是使用一个安全的证书进行签名的,并且私钥托管在该签名中。所有数据都将使用该证书进行加密,只有您的服务器才能理解加密。https服务器的证书可以是自签名或受信任的CA,这只是为了从安全的网页通过ajax调用进行通信 :) - krishnakumar sekar
好的,但是如果你的Web应用程序是HTTPS,你必须让你的客户端服务器也是HTTPS(以避免混合模式限制)。现在,为了让你的客户端服务器成为HTTPS,你必须让自签名证书被浏览器信任,这就是问题所在,看看戴尔发生了什么 http://www.computerworld.com/article/3008113/security/dell-installs-self-signed-root-certificate-on-laptops-endangers-users-privacy.html... 我仍在寻找解决这个问题的方法... - lmiguelmh
据我所知,只要您的 HTTPS 客户端服务器存在于客户机器中,所有浏览器都将接受自签名。DELL 的 URL 似乎属于不同的上下文。他们正在使用自签名证书来访问机器的根目录。在这种情况下,本地客户端服务器没有权限访问客户机器内容,它只能与读卡器通信。即使是 HTTPS,由于是自签名,连接也是开放式连接,但数据是使用只有您知道的安全密钥加密的。 - krishnakumar sekar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接