WordPress
インストールを安全にする
サーチ…
備考
WordPressのウェブサイトは頻繁にハッキングされます。このトピックは、WordPressインストールのセキュリティを基本インストールで達成されたもの以上に高めるテクニックとプラクティスです。
このトピックとは別に、WordPressのインストールをセキュリティで保護するためのもう1つの良い場所は、 WordPressのコーデックスを強化するページです。
ファイルエディタを無効にする
WordPressに同梱のファイルエディタはセキュリティ上のリスクです。攻撃者があなたのワードプレスWebサイトへの管理者アクセスを取得した場合、悪意のあるコードをテーマやプラグインファイルに簡単に挿入することができます。また、彼らが何をしているのか分からないクライアントにとっても危険です。ファイルエディタで誤って配置されたコロンがサイトを壊し、ブラウザからアクセスできなくなる可能性があります。
WordPressのwp-config.php
ファイルで、次のコード行を追加してファイルエディタを無効にします。
define( 'DISALLOW_FILE_EDIT', true );
その行はあなたのテーマのfunctions.php
ファイルにも追加されたときに望ましい効果を持ちますが、 wp-config.php
に追加する方が良いでしょう。
WordPress CLIを使用してWordPressをインストールしている場合は、次のコマンドを使用して、ファイル編集を無効にしたwp-config.php
ファイルを作成できます。
/* declare variables beforehand or substitute strings in */
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP
define( 'DISALLOW_FILE_EDIT', true );
PHP
この方法は、WordPressをスクリプトと共にインストールする場合に便利です。
wp-config.phpを動かす
WordPressのインストールで最も重要な情報は、 wp-config.php
ファイルに保存されています。ハッカーがこのファイルにアクセスすると、あなたのウェブサイトを完全に制御できます。
デフォルトでは、 wp-config.php
はWordPressのインストールフォルダに保存されます。このファイルを盗みにくくするには、Webアクセス可能なフォルダから移動することができます。上記のフォルダを1つだけ移動すると、WordPressはそれを自動的に見つけます。 wp-config.php
を別の場所に移動する場合は、WordPressのインストールフォルダにwp-config.php
という空のファイルを作成します。次に、以下を追加します。
define('ABSPATH', dirname(__FILE__) . '/');
// '../../wp-config.php' defines location two folders above installation folder.
// Substitute with actual location of wp-config.php file as necessary.
require_once(ABSPATH . '../../wp-config.php');
wp-config.phpを置いたフォルダにphp
実行可能にする必要があるかもしれません。できるだけ少ないフォルダでphpを実行可能にする必要があります。良いシステムは、ワードプレスの中にインストールします/path/to/wordpress/install/
とで設定/path/to/wordpress/config
。 configフォルダがWebでアクセス可能でないことを確認し、フォルダ階層の/path/to/
配置される他の機密情報を置かないでください。その場合は、 php.ini
次のような行を書くでしょう:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
この手法は議論の余地があり、セキュリティを強化するとは思わない人もいます。 このWordPressのStackExchangeの質問では、トピックに関する広範な議論を読むことができます。
WordPressテーブルのカスタムプレフィックスを設定する
あなたのサーバにWordPressをインストールすると、インストールスクリプトはすべてのWordPressのMySQLテーブル名の前に接頭辞を置きます。この接頭辞はデフォルトで 'wp_'に設定されています。 WordPressの投稿テーブルは、たとえばwp_posts
と呼ばれます。テーブルのプレフィックスを変更することで、あいまいでセキュリティを作成することができます。このようにして、ハッカーがSQLインジェクション攻撃を試みると、単に 'wp_'を使用するのではなく、テーブルのプレフィックスを推測する必要があります。このプレフィックスは好きなように設定できます。
新しいWordPressのインストールでプレフィックスを設定する
有名な5分間のインストールを使用している場合インストール中にフィールドに接頭辞を変更してください。
WordPress CLI経由でインストールする場合は、次のコマンドを使用します。
// set other variables above, or substitute your strings in.
WP_DBPREFIX=foo
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU
既存のインストールでプレフィックスを変更する
プレフィックスの変更はもう少し難しいです。まず、FileZillaのようなFTPプログラムを使ってwp-config.php
ファイルを編集します。エントリ$table_prefix = 'wp_';
変更し$table_prefix = 'wp_';
$table_prefix = 'foo_';
あなたの望むプレフィックスに 'foo'を代入する。
次に、データベースを編集する必要があります。 phpMyAdminにアクセスできる場合は、ログインして次の操作を行います:
- WordPressデータベースを選択してください
- すべてのテーブルを選択し、ドロップダウンで[テーブルプレフィックスの置換]を選択します。
- 「From」に「wp_」と入力します。この例では、 "To"に接頭辞 'foo_'を入力し、[Submit]を押します。
- テーブルは次のようになります。
phpMyAdminを使用できない場合は、次のMySQLコマンドを使用します。
RENAME table `wp_comments` TO `foo_comments`
他のテーブル名に 'comments'を代入して、各テーブルに対してそのコマンドを実行する必要があります。
次に、いくつかのテーブルでいくつかのエントリを変更する必要があります。 'foo_options'テーブルでこのクエリを実行する
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
option_nameが 'wp_user_roles'の項目が表示されます。そのエントリで、 'option_name'エントリをwp_user_roles
からwp_user_roles
にfoo_user_roles
ます。
その後、 'foo_usermeta'テーブルを開いて、前面に 'wp_'を含むすべてのエントリを見つけます。 それを 'foo_'に変更します。あなたが変更する必要があるエントリの数は、あなたが持っているユーザーの数に依存します。
既存のインストールでプレフィックスを変更するだけで済むはずです