サーチ…


備考

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_rolesfoo_user_rolesます。

その後、 'foo_usermeta'テーブルを開いて、前面に 'wp_'を含むすべてのエントリを見つけます。 ここに画像の説明を入力それを 'foo_'に変更します。あなたが変更する必要があるエントリの数は、あなたが持っているユーザーの数に依存します。 ここに画像の説明を入力

既存のインストールでプレフィックスを変更するだけで済むはずです



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow