如何正确更新WordPress数据库密码?

时间:2014-11-24 作者:MagRat

我管理的一个网站最近遭到破坏,我正在采取措施加强和重新保护该网站。我想更改MySQL数据库密码,并希望确保我不会关闭该站点(超过一分钟)。

我还担心,如果我直接在数据库中手动更改数据库密码wp-config.php 该文件将可见且未加密。例如,如果我在安装时的初始密码是“请”,它将显示在wp-config.php 文件名为“aDQps4txy”。

那么,更新数据库密码的最佳方式是什么呢?

3 个回复
最合适的回答,由SO网友:Rarst 整理而成

这在技术上具有挑战性。WordPress必须以明文形式访问您的DB密码。有权访问wp-config.php 内容已违反正在进行的安全性。

有其他配置方法,例如通过环境变量加载凭据,但实际上很少使用,因为PHP的配置文件已经是一个合理的解决方案。

不清楚为什么您会假设有人可以访问配置文件。作为一种低挂水果,您可以将其放在web可访问目录之外。WordPress将在其上方一个目录级别上扫描配置文件。对于子目录安装,可以使用require 从其他地方加载配置内容,但即使这样也很少做到。

SO网友:Frank Kottler

您的实际DB密码未加密存储在wp-config.php, i、 例如,如果您的密码为foobar, 中的相应行wp-config.php 是:

/** MySQL database password */
define(\'DB_PASSWORD\', \'foobar\');
正如@Rarst指出的:

有权访问wp配置。php内容已经违反了正在进行的安全性。

这是因为PHP是一种超文本preprocessor. 任何访问wp-config.php 通过其web浏览器,文件将通过server-side PHP解释器。解释器仅将这些数据传递到客户端(web浏览器),该客户端已被指示输出这些数据。PHP不输出DB密码。当我访问wp-config.php 通过我的浏览器,我得到一个完全没有源代码的空页面,因为这个文件根本不输出任何内容。

然而,未加密存储DB密码并不是完全没有风险的。任何有机会绕过PHP解释器从而读取文件源代码的人都可以访问您的密码。这也是@Rarst的意思。要明确的是,这也可以是man-in-the-middle 谁在偷听你的unencrypted FTP connection. 下载时wp-config.php 通过一个不安全的FTP连接(与加密的SFTP连接相反)来编辑它并将其重新上传到您的服务器,您的密码可能会被监听does exist.

防止大多数攻击的最简单方法是通过安全更新使服务器保持最新,并确保始终使用安全协议(HTTP/FTP over TLS=HTTPS/FTPS 替代HTTP/FTP,或者SFTP, 和SSH 而不是Telnet)处理敏感数据时,即担任管理员时。

了解更多信息https://codex.wordpress.org/Hardening_WordPress.

SO网友:John Ostrowick

如果Apache中的PHP模块不存在或由于任何原因损坏,则可以在没有CLI访问的情况下公开这些内容。在这种情况下,它只是转储原始PHP。我最近没有测试过这个;这是几年前的事了。但这并不酷。

从技术上讲,由于WordPress是开源的,您可以这样做:

define(\'DB_PASSWORD\', \'`cat /etc/wp_db_pass | base64 -d`\');

为WordPress密码文件创建一个更安全的位置。在本例中,我假设您是这样创建密码的:

echo \'mypassword\' | base64 > /etc/wp_db_pass
然而,如果您没有命令行访问权限,则可以通过FTP执行类似操作。

结束

相关推荐

在没有MySQL错误的情况下将测试主题移动到实时站点-如何?

我在一个隐藏的测试站点上安装了wordpress主题,并对css/设计进行了一些更改。如何将其移动到我的live站点?遗憾的是,当我试图将帖子从实时站点复制到测试站点数据库时,我把一些PHP/MySQL的东西搞砸了,出现了一个非常可怕的重定向循环。我是否可以避免重蹈覆辙,或者我真的需要从头开始基本主题和定制?测试地点:http://173.254.28.65/~neveren2/thundercatsaremyhomeboys/ - 可怕的重定向循环-实时站点:http://www.neverenough