mysql - 加密数据库凭据

标签 mysql database encryption credentials

首先解释一下,我们有一些网站都连接到一个中央数据库。作为一项规则,我们不会让客户访问其网站的 FTP,因此他们无法访问其中包含数据库凭据的任何文件。 99.9% 的情况下这没问题。

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

现在我确定他们不会窃取我们的 mysql 凭据并连接并清除我们的数据库,但毫无疑问,您会同意这是一个巨大的安全风险。

有什么办法可以:

a) 在他们看不到代码中的凭据的情况下连接到数据库

b) 阻止他们添加自己的代码并连接到中央数据库,只有他们自己的

很确定没有什么是 100% 安全的,因为给他们 FTP 访问权限意味着他们可以像我一样做,但想知道是否还有其他人有任何想法?

最佳答案

在不编写 RESTful API 的情况下“安全地”执行此操作的唯一方法(您已经指出这是不可行的)是在您的 MySQL 中为他们创建一个特殊的用户帐户,该帐户无法访问不属于他们的记录。说实话,如果你做得“正确”,你应该为你所有的客户这样做,尽管我知道这可能需要很多维护工作。

关于加密,没有办法为客户端加密您的数据库凭据,并在没有一些中间代码的情况下为数据库登录解密它们。如果客户端有自己的 MySQL 帐户进行访问,这应该无关紧要。

关于mysql - 加密数据库凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564954/

相关文章:

php - MySQL 服务器因大文本查询而过载?

python - 使用 Django 在 Heroku 上进行 Redshift 连接

sql - DB2:如何在 DB2 中连接空字符串?

python - (2 n) 使用 Python 的视觉密码学

java - Android:无法解密值

php - .Htaccess Url 重写将 %20(空格)替换为 "-"

php - 如何在 Laravel 中获取双请求名称到数组?

mysql - 试图弄清楚如何找到最大计数

php - 我如何从两个表中有一个公共(public)列的多个列中选择数据?

google-chrome - Chrome 而不是 Firefox 不会转储到 SSLKEYLOGFILE 变量