发布网友 发布时间:2022-04-24 18:41
共1个回答
热心网友 时间:2023-11-02 23:08
NPAPI 是浏览器的应用编程接口,它提供了一组 API 供浏览器调用其具体实现代码。
其生命周期看可能与整个浏览器生命周期相同(这要看具体plugin实现了)。
NPAPI 可以与本地系统用户权限一致的权利调用任何系统资源。这就打穿了浏览器沙箱环境。因此身存在着一定的安全隐患。
如,NPAPI 的插件代码肆意调用系统资源导致死机、代码存在漏洞被系统内其他恶意程序利用等。
网银之类的 NPAPI(如果真的有很多的话 = =|||) 同理也是使用此类技术,在用户本地使用本地应用(dll 或其他编译好的程序)计算、加密、通过安全(网络)获取用户所需证书、密码等关键信息。一旦存在漏洞,也很容易被本地的第三方应用程序利用。
Chrome 的 NACL 与之类似,但是将安全性加高。 NACL 根据 Technical Overview 描述,是运行在沙箱内,并*:
no support for hardware exceptions
no support for process creation / subprocesses
no
support for raw TCP/UDP sockets (analogous versions—websockets for TCP
and peer connect for UDP—are in the works and will be available soon)
no support for query to available memory
由此来提高 plugin 的整体安全度和稳定性。
至于 websocket …… 偶真不知道跟 NPAPI 的替代有啥关系,要有关系也是包含关系吧。如: NPAPI 的替代技术实现里不*在沙箱环境内使用 websocket 技术访问网络资源啥的。