容易にアクセスされるとセキュリティ面で脆弱性となりうるWordPressのファイル一覧。.htaccess
などでアクセス制限を行う。
コンテンツ
アクセス制限推奨ファイル
ディレクトリ表示の禁止
ブラウザでディレクトリにアクセスされた時にファイル一覧が見られないようにする
.htaccess
に以下の1行を追加するだけでよい。
Options -Indexes
xmlrpc.php
ピンバック機能、スマホアプリからの記事の更新、メール投稿で利用されるスクリプト
Jetpackなどのプラグインも使用している
<Files xmlrpc\.php>
Order deny,allow
Deny from all
</Files>
xmlrpc.phpへのアクセスは、0.0.0.0へリダイレクトして負荷を避ける手法もある。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]
</IfModule>
wp-cron.php
予約投稿やアップデート通知など時間と連動した処理に使用されるプログラムを記述したファイル
<Files wp-cron\.php>
Order deny,allow
Deny from all
</Files>
wp-login.php
特定のIPアドレス以外からのアクセスを制限推奨
<Files wp-login\.php>
Order deny,allow
Deny from all
Allow from xxxx.xxxx.xxxx.xxxx
</Files>
wp-admin
特定のIPアドレス以外からのアクセスを制限推奨
以下を記述した.htaccessをwp-adminディレクトリ直下にアップする。
Order deny,allow
Deny from all
Allow from xxxx.xxxx.xxxx.xxxx
wp-config.php
データベースのアカウントやテーブルのプレフィクスなどの重要な情報を記述する
<Files wp-config\.php>
Order deny,allow
Deny from all
Allow from xxxx.xxxx.xxxx.xxxx
</Files>
アクセス制限をまとめて記述することもできる。
<Files ~ "^(mlrpc\.php|wp-cron\.php|wp-config\.php)$">
Deny from all
</Files>
また、WordPressインストール作業中という極めて限定された条件下では、setup-config.phpも脆弱性の対象となるので、対策を検討する。
admin/setup-config.php
WordPressセットアップ中のユーザーがインストール画面にアクセスするより先にボットに /wp-admin/setup-config.php を表示させ、先にインストールしてしまう攻撃の対象となる。