【问题标题】:Software located on different server as Database位于不同服务器上的软件作为数据库
【发布时间】:2016-06-20 00:45:36
【问题描述】:

我的问题很简单,但我想知道是否有人作为更好的解决方案。

我遇到的问题是将 MySQL 数据库放在与软件本身不同的服务器上。 我听说,在声明与数据库的“localhost”不同的主机时存在安全问题,所以我想问你们是否有人知道答案或知道如何处理它。

这项任务背后的想法如下:

如果我向客户提供软件,但不希望他们访问源代码(当服务器在他们的办公室时,这很简单),我将它放在我自己的服务器上并让他们访问它。 然后客户说他们不希望我们访问他们的数据,他们存储在数据库中。

所以我现在的问题是,如何才能找到同时满足这两种需求的解决方案。我的,以及客户的。

希望你能明白我的意思。

感谢您的帮助!

【问题讨论】:

    标签: php mysql server


    【解决方案1】:

    我认为不可能有一个让双方都满足你所设定的条件的解决方案。

    如果软件是您的服务器,那么您可以控制它,并且可以让它做任何您喜欢的事情。如果它可以访问他们的数据库,那么它可以对这些数据做任何你想做的事情。

    如果软件在他们的服务器上,那么他们就可以访问源代码。除非你混淆它,在这种情况下:

    • 他们不能(除了根本不让其访问 Internet)确保您不会对他们的数据做一些狡猾的事情
    • 他们可以对其进行去混淆处理(这更有可能)。

    你和他们之间需要在某个时候建立信任。

    鉴于对保护数据库的大多数担忧都源于与行业法规合规性相关的问题,因此这种信任可能必须来自您。

    编写软件许可证,限制他们可以对源代码执行的操作。考虑向他们收取额外的“源许可证”费用。

    【讨论】:

    • 购买我的软件的公司并不知道该软件在后台做什么。但这对于所有其他软件产品也是如此。在那一点上,他们必须信任我。
    【解决方案2】:

    这是一个有趣但不简单的问题。有几种方法可以实现一些安全机制:

    • 将您的 php 应用程序部署到客户服务器,但使用 ZendGuard 之类的东西对其进行保护。在这种情况下,您的客户无法简单地访问您的源代码,而您也无法获得他们的数据。
    • 在您的站点上部署您的应用程序并获得访问权限不是完整的数据库而是受限版本(例如使用视图受限)。在这种情况下,您的客户无法访问源代码,但您可以访问他们的部分数据。

    【讨论】:

    • 但软件必须有权读取和写入数据库,不是吗?
    • 是的,但您只能读取部分数据子集(可由客户的数据库管理员使用视图和过程进行配置)。相同的写作理念
    • 带“你”的意思是软件..?所以软件只能访问数据的一个子集......但软件必须有权访问所有数据,因为它是从数据库读取和/或写入数据的人。
    • 这一切都取决于应用程序的目的。例如,您是否为 GoogleDrive 使用第三方应用程序?例如,用于创建图表。此应用程序仅需要访问由其创建的文档,而不是整个 GoogleDrive。但是另一个用于将文件同步到 Dropbox 的应用程序可能需要访问整个 GoogleDrive。因此,应用数据权限取决于应用的特殊性
    • 嗯..我明白了...我会用 ZenGuard 试试这个想法。 :) 谢谢你的帮助!
    猜你喜欢
    • 1970-01-01
    • 2013-05-16
    • 2017-05-28
    • 2017-11-18
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2020-07-04
    • 2015-05-15
    相关资源
    最近更新 更多