安全的本地 mysql 访问

Posted

技术标签:

【中文标题】安全的本地 mysql 访问【英文标题】:secure local mysql access 【发布时间】:2012-06-15 17:48:33 【问题描述】:

我正在运行 xampp 服务器并连接到 mysql 数据库。我正在编写一些 php 来与数据库交互。数据库主要是在本地使用,所以问题就变成了如果有人在本地访问数据库,他们可以简单地打开php文件并找到mysql登录信息。有没有办法保护这些信息?我可以创建一个只能查看表格的用户,然后当有人尝试编辑时,我可以提示输入另一个密码吗?

我不确定这是否有意义,但基本上我不希望有人在本地能够看到存储在 mysql_connect() 中的 mysql 密码。我也对与 mysql 接口的其他解决方案持开放态度,但我相当受限于 xampp 服务器、mysql 和 java。

想法?

【问题讨论】:

【参考方案1】:

您必须以某种方式访问​​您的数据库凭据。如果有人可以访问您的 PHP 文件,那么您需要担心更多的安全问题。您可以做的不多。

我建议创建一个 DSN,并确保只有授权用户才能访问该 DSN。不过,攻击者可以轻松地编辑您的 PHP 文件以访问数据库。

【讨论】:

对,所以我想我想知道是否有某种方法可以编译或加密 php 文件。或者,如果有某种方法可以通过某些东西进行连接,然后仍然通过 Web 浏览器进行交互?感谢您的快速回复! 加密对你没有任何好处,因为你需要解密它才能让你的脚本使用它。我试图解释,无论你做什么,最后,你的脚本仍然需要连接到你的数据库,所以必须知道凭据。既然你已经让别人访问你的文件,情况就没有希望了。 嗯,好的。感谢您的回复!【参考方案2】:

我可以创建一个只能查看表格的用户,然后当有人尝试编辑时,我可以提示输入另一个密码吗?

如果您在 Web 应用程序中设计所有这些逻辑,那么您可以。通过在 MySQL 中管理用户,您可以创建两个,一个仅具有“选择”权限,另一个具有更广泛的权限。

检测何时提示“写入密码”需要在您的自定义代码中完成,然后您可以随后为 mysql_connect() 构建不同的字符串。

总的来说,尽管我必须同意 Brad 的观点 - 如果您的 PHP 文件中有入侵者,那么您就会遇到更大的问题。

【讨论】:

以上是关于安全的本地 mysql 访问的主要内容,如果未能解决你的问题,请参考以下文章

如何使 mysql 访问公开,而不仅限于本地主机?

Navicat设定mysql实时备份计划任务问题

为啥 MySQL 禁用加载本地 infile 不起作用?

从本地计算机远程访问数据库?

XP无法访问WIN7,提示权限限制,无法访问

如何阻止某个IP访问我的电脑-用本地安全策略限制某个IP段