.htaccessでWordPressのセキュリティ強化

[参考URL]
さくらインターネットのVPS設定マニュアル – WordPress – .htaccessでWordPressを守る

cd /var/www/html

su -

vi .htaccess

以下の内容を記述していく。

  1. .htaccessファイルの保護
    <Files ~ "^.*\.([Hh][Tt][Aa])">
     order allow,deny
     deny from all
     satisfy all
    </Files>
  2. WordPress内にあるディレクトリ一覧の非表示
     Options -Indexes
  3. wp-config.phpの保護
    # protect wp-config.php
    <files wp-config.php>
     order allow,deny
     deny from all
    </files>
  4. wp-mail.phpとinstall.phpの保護
    <FilesMatch "^(wp-config\.php|wp-mail\.php|install\.php|\.ht)">
     order allow,deny
     deny from all
    </FilesMatch>
  5. スクリプトインジェクション対策
    Options +FollowSymLinks
    RewriteEngine On
    # <script> タグ
    RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
    # PHP グローバルに関連するもの
    RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
    # _REQUEST を変更しようとするもの
    RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
    #マッチしたURLへのアクセスを禁止("403 Forbidden"のレスポンスを返す)
    RewriteRule ^(.*)$ index.php [F,L]
  6. 日本国外からのログイン画面へのアクセスを制限

    このサイトからダウンロードした.htaccessを開き、日本国内のIPアドレスリストを下記のハイライトした部分にペースト

    <Files ~ "^(wp-login\.php|xmlrpc\.php)$">
    Order deny,allow
    Deny from all
    allow from 1.0.16.0/20
    allow from 1.0.64.0/18
    allow from 1.1.64.0/18
    allow from 1.5.0.0/16
    allow from 1.21.0.0/16
    allow from 1.33.0.0/16
    (以下、日本国内IPアドレス続く)
    ...
    ...
    ...
    </Files>

以上でWordpressの基本的な保護はできるようだ。