政治正确下,总是要顺应潮流批判一下ie和老旧的activex或是javaapplet技术...
都说不安全,过时的东西,偏偏很多时候就是需要透过它们来读读卡机,
因此很多时候还是得改设定把功能用回来,
一直到win10仍然有旧版ie存在大概就是顾虑这个问题.
但最近却出现了号称跨平台且不限浏览器的读卡方案,
原本以为是不是webusb这种东西,但似乎还没成熟,且不是通用方案.
最后发现了是满奇特的作法,透过安装一款独立的clinet软件提页面服务
(类似当成网页与client端硬件沟通的proxy,因为是client端软件所以当然没沙箱问题)
来存取自然人凭证或是芯片卡等等....
但我总是以为这种东西大概是rd会写一个微型服务,自干一个简单的http服务server才对,
结果自然人凭证的作法是直接把node.js打包入内,
里面直接有node.js直译器和精简化的必要模组,
透过node.js建立http server来给网页call api用.... 里面的sources也是都直接摊开,
不过硬件底层的控制应该还是透过c/c++之类的去处理,这样的做法是可以达到效果,
但说真的也好像不是很ok....activex跟javaapplet被人批评的是如果散布者有恶意,
它给予的服务就有危险性....同样的老问题,让user去安装一款独立的client软件,
且安装还跟你要管理者权限(更大尾),只能仰赖软件本身没恶意企图.
所以其实搞了半天,批评activex跟javaapplet的点也是有点问题,
还不是都仰赖服务来源够不够让人信赖罢了....
至始至终不变的是要做进阶底层的事情跳过沙箱,你就一定得给予权限,
不管是被批评的老技术,或是现在的做法,
那给予权限必定就代表开发者若不怀好意用啥方式都会有问题.
有在玩node.js好奇的,可以安装HiPKILocalSignServer这东西,
自己去它程式目录内研究一下服务的js sources看看.