- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这个问题试图在 Chrome 扩展的 API 中提出一个真正的安全问题:如何在与您的服务交互时检查您的 Chrome 扩展的真实性。如果有任何遗漏的可能性,或任何误解,请随时在评论中问我。
最佳答案
很抱歉,您提出的这个问题本质上是无法解决的,因为一个简单的问题:您不能信任客户。而且由于客户可以看到代码你无法解决问题。
来自客户端的任何信息都可以通过其他方式复制。这与试图证明当用户登录他们的帐户时实际上是用户而不是其他人发现或获得了他们的用户名和密码是同一个问题。
互联网安全模型是围绕 2 方建立的,试图在第三方无法模仿、修改或窃听对话的情况下进行通信。如果不隐藏扩展的源代码,客户端将无法与第三方区分开来(副本中的文件 - 无法确定哪个是哪个)。
如果源代码被隐藏,那就完全是另外一回事了。现在,用户或恶意方无法访问真实客户端知道的 secret ,并且所有常规安全模型都适用。然而,Chrome 是否允许在扩展中隐藏源代码值得怀疑,因为这会产生其他安全问题。
如您所说,可以使用 NPAPI 插件隐藏某些源代码,但它的价格如您所知。
回到当前的状态:
现在问题变成了交互的含义。
如果交互意味着当用户在页面上时您想知道它是您的扩展程序还是其他一些那么您可以获得的最接近的是在 app 下的扩展程序 list 中列出您的页面记录部分 here
这将允许您在页面上询问是否使用安装了该应用程序
chrome.app.isInstalled
这将返回 bool 值,显示您的应用程序是否已安装。该命令已记录 here
然而,这并没有真正解决问题,因为扩展可能已安装,但未启用,并且还有另一个扩展模拟与您网站的通信。
此外,验证是在客户端进行的,因此可以覆盖任何使用该验证的函数以忽略此变量的结果。
但是,如果交互意味着发出 XMLHttpRequests,那么您就不走运了。如上所述,由于源代码的可见性,无法使用当前方法完成。
但是,如果它将您的网站的可用性限制在授权实体,我建议使用常规身份验证方式:让用户登录将允许您创建 session 。此 session 将传播到扩展程序发出的所有请求,因此您可以解决常规客户端登录信任问题,例如帐户共享等。当然,可以通过让用户通过他们的 Google 帐户登录来管理这些问题,大多数人都不愿意共享并通过阻止似乎被滥用的帐户进一步缓解。
关于javascript - 如何检查 Chrome 扩展程序的真实性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460297/
我浏览了Truthiness in Python并理解 [] 和类似的空对象在 Python 中被解释为 False。 但是当我在 REPL 中输入以下内容时,它返回 False: >>> [] ==
我是 JavaScript 的新手,我正在尝试从 Internet 资源中学习它。虽然我知道会有很多 cr*p Material ,但大多数人似乎都同意的一件事是 JS 中事物的真实性(只是举个例子
Android/Iphone 应用程序将从服务器访问应用程序数据。[Django-Python] 如何确保与移动应用程序的通信安全? 期望:对密码等敏感信息足够安全,除了暴力破解之外,没有直接的解密方
我目前有一个应用程序,它使用常规 Devise 身份验证进行登录和注销,但使用 Devise 的 token_authenticatable 模块创建一个唯一 token ,该 token 在从书签提
我正在使用 rails 4.0.3 和 passenger和 authlogic构建 Web 应用程序并在用户登录时遇到问题,但在创建新的 UserSession 时使用以前的用户真实性 token
有谁知道在 Ruby on Rails 3 中如何管理真实性 token ?在展示如何使用 HTML5 数据属性的所有不显眼的 Javascript Ruby on Rails 3 文章中,我在任何地
Rails 中的真实性 token 是什么? 最佳答案 会发生什么 当用户查看表单以创建、更新或销毁资源时,Rails 应用会创建一个随机的 authenticity_token,将此 token 存
当我遇到一些真实性 token 问题时,我正在开发一个新的 Rails 4 应用程序(在 Ruby 2.0.0-p0 上)。 在编写响应 json 的 Controller 时(使用 respond_
我正在将devise(最新版本-3.2.0)与rails(最新版本-4.0.1)一起使用 我正在做简单的身份验证(没有ajax或api),并且CSRF身份验证 token 出现错误。检查下面的POST
我正在尝试在 Rails 中执行跨平台请求。 我的 html 代码是:- Title
我正在使用 Sinatra 框架在 ruby 中构建一个简单的应用程序。它主要基于“获取”——大多数请求将用于列出数据。但是,应用程序中有几个关键屏幕将收集用户输入。我想确保该应用尽可能安全,目前
我正在尝试使用 uploadify ( http://www.uploadify.com ) 在 rails 3 应用程序中获取文件上传进度条,但我被困在真实性 token 上。我当前的uploadi
我正在尝试对一个简单的 Rails 应用程序执行 JMeter 后期操作,但我得到以下回复: 在 2015-05-04 12:40:15 -0700 开始为 127.0.0.1 发布“/flights
我的问题是关于加强 .NET 程序集之间的安全性。这是场景: Foundation 程序集部署在服务器上。 应用程序中附带了一系列插件程序集。 插件使用Foundation的功能。 由于Foundat
在 rails 4 应用程序的同一页面上,我有一个 在头部: 和下面的 body : js 调用需要 csrf token 。但是为什么form token与csrf token不同呢?表
在我们的 Rails 应用程序中,用户经常将多个浏览器选项卡一次打开数小时或数天。当在这些选项卡之一中,用户注销然后重新登录(或 session 过期并创建新 session )时,就会出现问题。 这
我有一个使用 Windows Phone 8 SDK 的 Phonegap 2.3.0 通过 iframe 加载的 Web 应用程序。通过 iframe 加载它的问题是,当我发送 $.post() 请
我的 Rails 应用程序订阅了一个外部系统 POST 通知(名为 Orion context broker)。我管理发送 json 数据和处理响应(ruby->Orion)。 但是当收到通知请求时,
我正试图在 Rails 中获得完整的页面缓存,但我在 CSRF 方面遇到了很大的障碍——或者可能只是我对它的理解。我目前有 form_authenticity_token存储在 cookie 中的字符
我正在开发一个简单的网站,让管理员提出问题并让用户解决问题。我在管理部分使用 ActiveAdmin,在用户解决部分使用简单的 AJAX 调用。起初尝试通过 ActiveAdmin::Devise 登
我是一名优秀的程序员,十分优秀!