自分が管理しているサイトが最近侵害され、そのサイトを強化して安全を確保するための手順を実行しています。 MySqlデータベースのパスワードを変更したいのですが、サイトを停止しないように(1分以上)しないようにしたいです。
また、 wp-config.php ファイルでDBパスワードを直接手動で変更した場合、それが表示され暗号化されないようになることも心配です。たとえば、インストール時の初期パスワードが「please」の場合、 wp-config.php ファイルには「aDQps4txy」と表示されます。
それでは、データベースのパスワードを更新するための最良の方法は何ですか?
前もって感謝します。
これは技術的に困難です。 WordPress 必須 プレーンテキストのDBパスワードにアクセスできる。 wp-config.php
の内容にアクセスすることはすでに進行中のセキュリティ違反です。
環境変数を使用して資格情報をロードするなど、設定には別の方法がありますが、PHP configファイルがすでに妥当な解決策であるため、実際にはあまり使用されません。
なぜあなたが誰かが設定にアクセスすると仮定するのかはっきりしません。ぶら下がっている果物としてあなたはそれをウェブのアクセス可能なディレクトリの外に置くことができます。 WordPressは自分自身の1つ上のディレクトリレベルで設定をスキャンします。サブディレクトリのインストールでは、他の場所から設定内容をロードするためにrequire
を使用することができますが、それでもほとんど行われません。
実際のDBパスワードはwp-config.php
に暗号化されずに保存されます。つまり、パスワードがfoobar
の場合、wp-config.php
の対応する行は次のようになります。
/** MySQL database password */
define('DB_PASSWORD', 'foobar');
@Rarstが指摘したように:
Wp-config.phpの内容にアクセスすることはすでに進行中のセキュリティ違反です。
これはPHPがハイパーテキスト プリプロセッサ であるためです。 Webブラウザ経由でwp-config.php
にアクセスする人はだれでも サーバー側 PHPインタプリタを通してファイルをルーティングすることになります。インタプリタは、出力を指示されたデータのみをクライアント(Webブラウザ)に渡します。 DBのパスワードはPHPによって出力されません。私のブラウザを通して私のwp-config.php
にアクセスすると、このファイルは何も出力しないので、全くソースコードのない空のページを得ます。
ただし、DBパスワードを暗号化せずに保存しても完全にリスクがないわけではありません。 PHPインタプリタを迂回してファイルのソースを読む機会を得た人はだれでもあなたのパスワードにアクセスすることができます。これも@Rarstの意味です。はっきりさせるために、これは 中間者 あなたの 暗号化されていないFTP接続を盗聴している人 でも構いません。安全でないFTP接続(暗号化されたSFTP接続とは対照的)を介してwp-config.php
をダウンロードしてサーバーに再度アップロードする瞬間、パスワードが に盗まれている可能性があります .
ほとんどの攻撃を防ぐ最も簡単な方法は、セキュリティ更新プログラムを使用してサーバーを最新の状態に保ち、常に安全なプロトコル(HTTP/FTP over TLS = HTTPS/FTPS をHTTP/FTPではなく)を使用することです。機密データを扱う場合、つまり管理者として機能する場合は、代わりに _ sftp _ 、および _ ssh _ (Telnetの代わりに)を使用します。
https://codex.wordpress.org/Hardening_WordPress で詳細をお読みください。