【问题标题】:MySQL security concern [closed]MySQL安全问题[关闭]
【发布时间】:2013-01-30 22:10:55
【问题描述】:

哦哦。我刚刚意识到,我认为进入我的 MySQL 数据库非常容易。我的网络服务器使用单独的 PHP 脚本连接到服务器,其中包括用户名和密码。如果我错了,请纠正我,但有人不能在他们的脚本中轻松地要求这个文件,然后就可以完全访问我的数据库吗?

【问题讨论】:

  • 如果有人调用你的 PHP 文件,服务器(应该)向他们发送解析后的内容,而不是源代码。
  • 通过在浏览器中使用“查看源代码”,您可以在更短的时间内输入此内容,您只需检查一下即可

标签: php mysql sql


【解决方案1】:

没有。

只要您的网络服务器将文件解释为 PHP 脚本,您的 PHP 脚本的源代码就永远不会显示给最终用户。

在 PHP 文件中以纯文本形式包含 db 凭据是很常见的。

【讨论】:

  • 好的,谢谢。老实说,我不确定,但我只是想验证安全性不会受到威胁。只要允许,我就会将您的答案标记为已接受。 :P
  • 如果您大量错误配置您的服务器,您可能会允许.phps 模式可以查看源代码。过去也有bugs that expose source code,因此请绝对确定您已修补并保持最新状态。
【解决方案2】:

正如其他人所提到的,当另一个服务器包含您的文件时,服务器会对其进行解析,因此除非配置不正确,否则他们将得到的只是解析后的文件。

但是,出于这个原因,您不应该将数据库登录凭据存储在 Web 根目录中。例如,如果您的网络根目录是

/home/username/public_html/

然后将文件存储在:

/home/username/db.inc.php // change file name accordingly

然后在你的脚本中,做

require_once('/home/username/db.inc.php');

由于它位于您的 Web 根目录之外,因此有人甚至无法从 HTTP 访问该文件。

【讨论】:

  • 哎呀。如果我的文件在我的网络根目录中,那么我就有麻烦了?
  • 不,您可能没有遇到麻烦,但最好将任何包含高度敏感信息的文件(例如您的数据库登录信息)保存在 Web 根目录之外。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 2013-01-14
  • 2014-01-24
  • 1970-01-01
  • 2011-10-10
  • 2014-10-29
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多