渐进式Web应用程序和私有SQL凭据

时间:2018-06-01 21:13:13

标签: javascript sql progressive-web-apps pwa

我的任务是将PHP应用程序转换为渐进式Web应用程序。这需要将现有的PHP逻辑转换为运行客户端的JavaScript。

但是,PHP应用程序包含敏感信息,包括SQL凭据,绝不能泄露。这使得转换变得复杂,因为渐进式网络应用程序的最大要求之一是脱机优先,或者即使有互联网连接也能够在没有互联网连接的情况下运行和/或不会减速。

加密JavaScript代码不是一种选择,因为无论加密有多强,解密代码都必须与它一起发布,因此,坚定的黑客将始终能够破解加密。 HTTPS不能阻止黑客越狱他们的手机。

另一方面,向保存敏感凭据的代理服务器发送Ajax请求会降低应用程序的速度,从而打败渐进式Web应用程序的全部要点。

我花了几个小时在网上查找解决方案,但我找不到足够的相关信息。那么开发人员应该如何确保SQL凭据和其他敏感信息永远不会在渐进式Web应用程序中公开呢?

编辑:我应该澄清一下,虽然我理解将本地数据与服务器数据同步是渐进式网络应用程序的首选行为,但在这种特殊情况下,我明确禁止这样做。数据必须保密。

1 个答案:

答案 0 :(得分:0)

要回答有关如何在客户端安全存储数据库密码的原始问题,"您无法" 。客户端的任何内容都不适用于服务器端DB密码等敏感信息。

PWA是当天的Web应用程序,具有新功能。但是这些并没有为您提供任何额外的安全性来执行服务器端操作,您可以向用户隐藏这些操作。即使您使用HTTPS,它也只会通过网络加密数据。

如果您使用该怎么办:如果您存储"数据库密码"在PWA应用程序或任何Web应用程序中,用户可以使用Chrome Dev工具获取密码,并使用它直接连接到DB以获取其中的所有数据,而不仅仅是他的。

解决方案: PHP是一种服务器端脚本语言。当您将其转换为HTML / JS时,将保留服务器端代码,以便您将其再次放入服务器端本身,并使用Web服务将数据公开给PWA。

关于下载数据:缓存并不等同于下载。 Read more on here如果您仍然不想要缓存,那么您只需要网络"模式在同一链接中解释并使用其他PWA方面..如通知,安装到主屏幕。