【问题标题】:Progressive Web Apps and Private SQL Credentials渐进式 Web 应用程序和私有 SQL 凭证
【发布时间】:2018-11-12 01:07:30
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 您的 SQL 凭据不应位于靠近客户端代码的任何位置。 PWA 并不意味着“没有服务器端代码”
  • 忽略了 PWA 的工作原理。在线时,您将本地数据与服务器数据同步。
  • @charlietfl:你说得有道理,我希望我能听从你的建议,但就我而言,出于保密原因,我被明确禁止让客户下载任何数据。我应该编辑问题以澄清这个事实......
  • 数据总是下载到客户端,你选择保留多久是另一回事。显然,您不能“先下线”和“不下线” - 必须有人以一种或另一种方式下定决心。

标签: javascript sql progressive-web-apps pwa


【解决方案1】:

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

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

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

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

关于下载数据:缓存并不完全等同于下载。 Read more on here 如果您仍然不想缓存,请按照同一链接中的说明使用“仅限网络”模式,并利用其他 PWA 方面......如通知,安装到主屏幕。

【讨论】:

    猜你喜欢
    • 2020-10-04
    • 1970-01-01
    • 2018-12-23
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    相关资源
    最近更新 更多