【问题标题】:moving PHP MySQL web app offline将 PHP MySQL Web 应用程序离线移动
【发布时间】:2012-05-09 15:22:21
【问题描述】:
我最近为我的公司构建了一个 Web 应用程序,现在他们希望它支持离线模式。更复杂的是,我的公司非常关注安全性,不希望我使用 Xampp 或 Mamp。该应用程序处理敏感数据,他们认为这些程序会以某种方式使数据对外界可见(尽管我完全确定情况会如此)。
无论如何,我正在寻找一种方法来允许我的应用程序脱机运行,并且还支持以下技术:PHP、MySQL、jQuery。最困难的部分是我需要在典型的服务器环境之外执行 PHP 代码。
谁能给我一些建议,告诉我如何实施这样一个系统,以及我在安全和数据存储方面可能面临的任何相关漏洞?
【问题讨论】:
标签:
php
mysql
web-applications
offline-mode
【解决方案1】:
假设你在他们的机器上为单个用户安装这个 - 你最好的办法是安装 apache/php/mysql,并将 apache 配置为拒绝来自任何远程 IP 地址的连接。
环境应该与您当前的应用程序基本相同,但系统中只有 1 个用户。
【解决方案2】:
你的问题有些奇怪
现在他们希望它支持离线模式
嗯,这很容易 - 熟悉 html5's offline features
更复杂的是,我的公司非常关注安全性,不希望我使用 Xampp 或 Mamp
您是否在台式机上部署了您的网络应用程序?或者你的意思是你被禁止使用网络服务器? Xampp/Mamp 是开发工具 - 您的面向公众的应用程序应该位于专门为此目的配置的机器上,并带有运行 apache/nginx/iis/PHP5.4-builtin/任何您喜欢的网络服务器。
其中最困难的部分是我需要在典型的服务器环境之外执行 PHP 代码。
您的环境如何非典型? Mike 提到了 php-gtk - 但 IMO 你不应该走那条路,除非你的要求是“桌面应用程序”+“绝对必须用 php 编写” - 你的问题不清楚。
我在安全和数据存储方面可能面临的任何相关漏洞
好吧,您在用户可以访问的客户端(浏览器)上的本地存储中放置的任何内容 - 请记住这一点。不要将敏感数据发送到您认为不安全且伪公共的位置,即某些用户的浏览器缓存。
【解决方案3】:
如果您想运行 html/javascript,您可能需要在服务器/客户端环境中运行它,因为浏览器无法运行 php,而 php 应用程序作为独立应用程序需要解析html/css/javascript(它需要浏览器来显示视图)。
最好的做法是将应用程序放到您可以控制访问的服务器上。仅将访问控制设置为特定的 IP 地址,如果您可以在防火墙后面的 Intranet 上运行它,那么网络外的任何人都无法访问它,这样就更好了。
PHP 可以在桌面环境中运行,但这里的关键是它不会运行您用来显示的 javascript/html。您可以将 php 与 php-gtk 等第三方库一起使用来制作不需要服务器或浏览器的桌面应用程序,但 php-gtk 没有最好的支持。
如果应用程序需要存储数据以供其他计算机/用户访问,则它需要位于网络上。如果不需要这样做,您可以考虑使用针对桌面应用程序的不同编程语言,这样您就可以使其完全脱机(例如 java 或 .NET)。