如何保护Chrome打包应用程序上的数据
How to secure data on a Chrome Packaged app?
我正在为我公司的客户构建一个Chrome应用程序。这些客户充当服务提供者(称其为服务提供者),并拥有自己的用户(称其为终端用户),这些用户与客户共享关键数据。我正在构建的应用程序将由我的客户的员工使用(称他们为代理)。该应用程序将处理服务提供商管理的最终用户的关键数据。
虽然服务提供商雇佣了他/她的代理,并且有一定的控制权,但从我的角度来看,我不能超过一定程度地信任代理。我希望我的应用程序提供安全的数据,将由应用程序处理。
我在我的chrome应用程序中使用文件系统API和indexedDB API。使用这些存储的数据可以使用web开发控制台(右键单击-> Inspect Element 或右键单击-> Inspect Background Page)。
为了确保代理不能访问数据,我想在分发打包的应用程序时禁用Web开发工具。然而,我没有发现这样的API或提及保护这些数据。这可能吗?如果是,那么怎么做,如果不是,我有什么选择?
我明白截图仍然是可能的,高级用户可能会去寻找系统磁盘上的实际数据文件,所以请不要提及这些点。这些代理是入门级操作符(大多数),我希望数据尽可能安全(并且欢迎额外的指针)。
不,完全安全地禁用inspect是不可能的。如果我没记错的话(当然这是一个bug),即使企业策略锁定生效,chrome://inspect
显然也能正常工作。顺便说一下,当一个应用程序被打包部署/加载,而不是加载它进行开发时,默认情况下,Dev Tools是禁用的。
最坏的情况是,所有客户端数据都被认为受到了损害。为了确保安全,您需要将数据保存在一个中央的、受到良好保护的服务器上,拥有一个强大的身份验证系统,并在需要知道的基础上提供数据(实现某种形式的acl ?)。
您可以通过使用Native Client模块加密数据来阻止偶然攻击,但最终您只是混淆了加密代码。一个有决心的攻击者可以破坏本机代码模块并解密数据。
但是说真的如果你只需要一张截图就能打败你的数据保护,那么考虑一下一张纸和一支铅笔也可以。你在不该担心的地方担心太多了。
还有,这里有一些指针
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 正在从ruby应用程序中的数据库中获取数据
- web浏览器中的离线应用程序存储数据并在之后上传
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- 如何使用Node.js/MongoDB在AngularJS应用程序中获取特定于目标的数据
- 来自应用程序状态的Jquery数据表源
- 应用程序脚本中导入HTML的数据擦除;谷歌表格
- 如何在angularjs应用程序中解析Drupal JSON数据
- 如何在Windows Phone 8.1应用程序中在C#和Javascript之间传递数据或通信
- Windows 8.1 应用中应用数据和会话数据之间的差异
- Web应用数据存储
- 重新加载后未应用数据表列定义和重新排序
- 使用Web.在Javascript/HTML中配置应用数据
- JQuery GanttChart-应用数据
- 使用javascript动态应用数据绑定
- 未应用数据属性中的css规则
- 在不破坏现有保存的情况下更改已保存的应用数据格式的策略(JavaScript+IndexedDB)