2013-05-15 104 views
2

首先要说明的是,我们有一些网站都连接到中央数据库。通常,我们不允许客户端访问他们网站的FTP,因此他们无法访问任何带有DB凭证的文件。 99.9%的时间没问题。加密数据库凭证

但是,我们有一个客户坚持他们有完整的FTP访问。他们想要添加广告/跟踪内容,并且我已经将他们自己的数据库和锁定的FTP设置在另一个目录中,但这显然不够好。

现在我确定他们不打算窃取我们的mysql凭证并连接并清除我们的数据库,但毫无疑问,您会同意其巨大的安全风险。只有

一)连接到数据库,而他们看到的代码

B)中的凭据从加入自己的代码,并连接到中央数据库阻止他们,他们的:

有什么办法自己

很确定没有什么是100%安全的,因为给他们FTP访问意味着他们可以尽我所能做同样的事情,但想知道其他人是否有任何想法?

+0

是的,收取额外的费用,比如1000年或更多,让他们炸掉自己的盒子 – Drew

+0

在谈论加密之前,我建议你使用特定的用户从你的脚本连接到你的数据库。这个用户应该拥有有限的权利(当然选择,插入和更新也可能不会超过)。当你谈论中央数据库时,你的意思是有人可以访问数据库访问其他用户的数据吗? –

+1

简单的答案是您需要在他们有权访问的代码与您想要拒绝访问的进程之间存在中介。然后,该中介可以执行任何您认为合适的检查,无论是验证与其交互的代码库,还是仅限制可执行的操作。如果是后者,你只需创建一个API来完成所有数据库活动;在简单的应用程序中,我使用MySQL帐户凭证和存储过程在数据库本身内创建了这样一个API。 – eggyal

回答

0

在没有编写RESTful API(您指出不可行)的情况下“安全”地完成此操作的唯一方法是在您的MySQL中为其创建一个特殊的用户帐户,该帐户无法访问不属于它们的记录。实际上,如果你做的是“正确的”,你应该为所有的客户做到这一点,尽管我明白这可能需要大量的维护。

关于加密,没有办法对客户端的数据库凭证进行加密,并且在没有中间代码的情况下将数据库登录解密。尽管客户端拥有自己的MySQL帐户进行访问,但这并不重要。