0

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

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

加密 JavaScript 代码不是一种选择,因为无论加密多么强大,解密代码都必须与它一起提供,因此,坚定的黑客总是能够破解加密。HTTPS 无法阻止黑客越狱他们的手机。

另一方面,向持有敏感凭证的代理服务器发送 Ajax 请求会减慢应用程序的速度,从而破坏渐进式 Web 应用程序的全部意义。

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

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

4

1 回答 1

0

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

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

如果您使用:如果您将“数据库密码”存储在 PWA 应用程序或任何网络应用程序中,例如,用户可以使用 Chrome 开发工具获取密码,并使用该密码直接连接到数据库以获取其中的所有数据,而不仅仅是他的。

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

关于下载数据:缓存并不完全等同于下载。在此处阅读更多内容,如果您仍然不想要缓存,请使用“仅限网络”模式,如同一链接中所述,并利用其他 PWA 方面......如通知,安装到主屏幕。

于 2018-06-04T14:39:35.623 回答