fse*_*art 14 javascript security google-chrome google-chrome-extension
此问题试图在Chrome扩展程序的API中引发真正的安全问题:如何在与您的服务进行交互时检查Chrome扩展程序的真实性.如果有任何遗漏的可能性或任何误解,请随时在评论中提问我.
我很遗憾地说,但由于一个简单的问题,你提出的这个问题实质上是无法解决的:你无法信任客户.由于客户端可以看到代码,因此您无法解决问题.
来自客户端的任何信息都可以通过其他方式复制.这与试图证明当用户登录他们的帐户实际上是用户而不是其他人发现或获得他们的用户名和密码时基本上是同一个问题.
互联网安全模型围绕2个试图进行通信的各方建立,而第三方无法模仿,修改或收听对话.在不隐藏扩展的源代码的情况下,客户端变得与第三方无法区分(副本中的文件 - 无法确定哪个是哪个).
如果源代码被隐藏,它就变成了另一个故事.现在,用户或恶意方无法访问真实客户端所知道的秘密,并且所有常规安全模型都适用.但是,Chrome会在扩展中允许隐藏源代码是值得怀疑的,因为它会产生其他安全问题.
如您所述,某些源代码可以使用NPAPI插件隐藏,但它已经提供了您已经知道的价格.
回到目前的状态:
现在它变成了交互意味着什么的问题.
如果交互意味着,当用户在页面上,你想知道这是否是您的分机或其他一些,那么你可以得到最接近的是列出你的页面下表现扩展应用部分作为记录在这里
这将允许您在页面上询问是否使用安装了应用程序
chrome.app.isInstalled
Run Code Online (Sandbox Code Playgroud)
这将返回布尔值,显示您的应用程序是否已安装.该命令记录在此处
但是这并没有真正解决问题,因为扩展可能已安装,但未启用,并且还有另一个扩展模拟与您的站点的通信.
此外,验证在客户端,因此可以覆盖使用该验证的任何函数以忽略此变量的结果.
但是,如果交互意味着制作XMLHttpRequests,那么你就不走运了.由于源代码的可见性,无法使用当前方法完成,如上所述.
但是,如果它限制您的站点对授权实体的可用性,我建议使用常规的身份验证方法:让用户登录将允许您创建会话.此会话将传播到扩展程序发出的所有请求,因此您可以在常规客户端登录信任问题,例如帐户共享等.这些当然可以通过让用户通过他们的Google帐户登录来管理,而这些帐户大多数都不愿意通过阻止似乎被滥用的帐户来分享和进一步缓解.
归档时间: |
|
查看次数: |
2260 次 |
最近记录: |