【问题标题】:Securing MySQL password in PHP script [duplicate]在 PHP 脚本中保护 MySQL 密码 [重复]
【发布时间】:2012-02-21 14:33:40
【问题描述】:

我似乎无法得到一个直接的答案,所以希望有人能提供帮助。

如果我在我的 PHP 脚本中包含 mysqli_connect() 语句并且还包含我的 MySQL 用户名和密码,那么这些详细信息是否会在任何时候容易受到攻击?显然,PHP 括号之间的任何内容都不会在客户端提供(因此在查看源代码等时不应查看)但是还有其他方式可以破坏这些细节吗?

【问题讨论】:

  • 上面链接的问题非常彻底地解决了这个问题。您的密码被泄露的唯一方法是您的服务器管理员已损坏,或者您的 Web 服务器配置错误并且不小心将 PHP 脚本作为纯文本或 HTML 提供。
  • 感谢您的提醒。

标签: php mysql security authentication


【解决方案1】:

如果由于某种原因,PHP 突然无法工作(例如由于升级、损坏的配置文件),这些文件可能会以 HTML 格式提供,并且登录信息将免费提供给任何访问该站点的人。我以前见过这种情况。

解决此问题的最佳方法是将所有内容移出您的 webroot,除了仅包含目录之外的一个文件的 index.php 文件。这也意味着您的源代码不会受到损害,假设 PHP 无法工作。

例如/var/www/public_html 只保存一个文件:index.php

<?php require("../entrypoint.php");

然后其他所有内容都位于/var/www。如果 PHP 然后失败,则只有 index.php 会受到影响。

这将使它非常安全,除非您的服务器本身受到威胁或您允许用户执行 PHP 代码,但这是另一个问题。大多数模块化 CMS 还会在连接初始化后取消设置所有连接变量,以避免其中一个模块意外暴露任何内容。

【讨论】:

  • 好提示。 PHP失败的可能性有多大?这种情况实际发生的频率如何?
  • 我会说这很少见且不太可能,只要您坚持使用稳定版本。
猜你喜欢
  • 2011-05-18
  • 2019-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多