【问题标题】:How to secure some code in Chrome app?如何保护 Chrome 应用程序中的某些代码?
【发布时间】:2014-11-11 19:00:17
【问题描述】:

如果我的所有行为都由在客户端运行的 JavaScript 管理,那么我看不到一种我可能不希望全世界看到的黑盒代码(例如,有关插入的硬件设备的内部详细信息)。有没有办法避免某些项目在right-click -> inspect element 中暴露?

通常,Web 应用程序的专有部分是在服务器端处理的(那里也可能有更强大的计算能力)。我在 chromeapp 上写的所有内容都开放给世界操纵吗?

【问题讨论】:

标签: javascript security google-chrome-app


【解决方案1】:

没有办法防止有人摆弄部署到客户端的任何应用程序,尤其是 JavaScript 应用程序。这也适用于 Chrome 应用。

【讨论】:

  • 因此,例如,usb 通信仅通过查看 comms.js 文件可见?无法将其作为后台脚本或存储在应用程序的其他位置?
  • @tarabyte 没错。没有办法隐藏它。即使您可以从应用程序的角度来看,您的 USB 流量也很容易捕获。 sourceforge.net/projects/usbsnoop
  • 我承认,大多数时候没有什么好方法可以隐藏东西,只是让它们变得不那么简单。如果有任何方法至少可以增加这些难度,请告诉我。
  • @tarabyte 没有。如果您查看有关混淆 JavaScript 的所有先前有关 Stack Overflow 的问题,您会发现更深入的推理。简短的回答是 JavaScript 引擎需要访问 JavaScript 代码本身才能运行,而不是一些中间二进制格式。这是为了方便toString() 了解功能和其他功能。您最好的做法是制定明确的许可条款,对您的应用程序进行逆向工程处罚,以便在有人窃取您试图隐藏的任何内容时,您有一些法律选择。
【解决方案2】:

对于代码:你能做的最好的就是丑化和破坏它。这使得反编译和复制/粘贴变得更加困难。 https://github.com/mishoo/UglifyJS

对于数据:(例如密码、私钥),您有几个可能的攻击者:

  1. 用户愿意通过操作系统工具和调试器攻击您的应用
  2. 恶意软件进程攻击您的应用

1) 如果具有 root 访问权限的用户正在攻击您的应用,只要有足够的时间和专业知识,他们就会获胜。最好的防御是限制他们可以攻击的“表面积”。在内存中加密您的私人数据,并在您完成未加密版本时释放/垃圾收集它。 Javascript 不会很好地帮助您解决这个问题。

2) 如果恶意进程正在攻击您的应用程序,那么您的应用程序与您的操作系统一样安全。如果恶意软件是 root,则与 1) 相同。同样,最好的选择是限制表面积。

也就是说,密码管理器等浏览器扩展程序始终存储安全数据,因此并非闻所未闻。

您可能会对这些链接感兴趣:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2014-07-05
    • 1970-01-01
    相关资源
    最近更新 更多