我有一个网络应用程序,显示目前在我们的集装箱码头工作的船只的生产力数据。这些数据有点敏感,但并不是真正的绝密,因为只是移动待定,总数,每小时移动的生产率和第一次移动的时间以及船只完成运营时的估计。虽然,如果公开,航运公司可以看到他们的竞争对手的船只如何参加,并可能导致我们的营销部门出现问题。
现在,我为智能手机用户创建了webapp,因此他们可以拥有实时生产力计划。这有助于他们评估正在发生的操作,并采取纠正措施来加速起重设备或解决任何问题。
应用程序在内部Web服务器中运行,用户必须登录VPN才能查看应用程序数据。无法从外面访问。我们的一些客户最近要求我们向他们提供数据,但是为了仅查看他们的船只而进行隔离。那没问题。我可以轻松地做到这一点,但问题是我不想让我们的VPN访问每个想要使用该应用程序的客户。
该应用程序以这种方式工作:
a)Pentaho ETL运行查询我们的数据库,并生成一个保存在apache webroot中的XML文件。
b)由HTML5,JS,JQuery编写的webapp读取的XML文件,以及使用bootstrap.js,datatables.js,realgauge.js和其他一些框架。
我的想法是将应用程序资源文件复制到公共网络服务器,并拥有一个cron作业ftp所有XML文件按分钟更新,因为可以从LAN访问。这样我们的智能手机用户将不再需要登录VPN来访问该应用程序。
但是,存在安全问题,因为HTML,JS和XML文件将向公众公开。该应用程序不会被公开,但我担心只是浏览网络根目录的攻击者可能会查明文件并提取数据。
所以,我的问题是我应该采取哪条路径的建议之一:
我们的主要目标是:让应用程序可供我们的移动用户或其他外部用户使用,同时不会使用所有数据公开纯XML文件。
非常感谢所有人的帮助。
更新
我一直在研究名为" Blank"的Joomla模板。事实证明甚至还有一个Bootstrap版本,所以如果我可以将我的代码放入模板中,我可以在Joomla中进行访问控制,将我的内容发布给登录用户,并应用自定义模板。有了这个,我将解决2个问题。
我可以发布自定义客户数据
我还可以将我们的移动网站发布给我们自己的每个移动用户,并且我将在VPN许可证上节省大量的$。
感谢大家的帮助。
答案 0 :(得分:1)
我假设的目标是:(1)非常好的安全性,以及(2)必要的最小开发工作。
然后我更喜欢你的方法#2。我会从您描述的情况中猜测,没有太大的需要更改密码,因此您可以自己生成用户/密码组合并与客户共享。如有必要,您可以每年更新一次。然后,您可以使用用户/密码登录直接访问应用程序,也可以使用客户端密码为客户端加密每个xml。
如果您发现客户确实需要更改密码,那么问题将是如何存储和更新密码,而不仅仅是让应用程序读取平面文件。