About

小樽で3年と少し経験を積み、現在は札幌でコーダーをしております。

赤い電動車いすに乗って生活をしています。色々と不便はありますが、行列待ち等の椅子がない状況では、真価を発揮します。

好き:食べる/スロープ/エレベーター
嫌い:食事制限/段差/階段
※スロープやエレベーターに関しては、もはや好きという感情では収まり切れません。

気づけばグルメブログになってしまわぬよう、しっかり更新頑張ります!

Links

【WordPress】プラグイン等を使わずにできるセキュリティ対策6選

WordPress Security

脆弱性等のセキュリティ面では何かと話題になることが多いWordPressですが、今回は特にプラグインを使わずに出来る簡単なセキュリティ対策について、ご紹介していきたいと思います。
※大前提として、WordPress本体とプラグインは常に最新を保つというのはとても重要です。

コンテンツ一覧

    データベースのテーブルプレフィックス(テーブル接頭辞)をデフォルトから変更する

    デフォルトは「wp_」となっており、SQLへの不正アクセス(SQLインジェクション等)を狙ってくる攻撃者にとってみれば、テーブル名が推測しやすい状況です。WordPressを新規インストールする際に設定するだけで変更ができますので、デフォルトの「wp_」以外に設定するよう心がけましょう。

    コンテンツ一覧へ戻る

    wp-config.phpへのアクセス制御

    データベースのアカウント情報も記載されている重要なファイルとなりますので、特にセキュリティ面において気をつけておくべきファイルとなります。

    まずは.htaccessで外部からのアクセスを不可にしておきます。
    「wp-config.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。

    # wp-config.php protect
    <files wp-config.php>
    order allow,deny
    deny from all
    </files>
    

    この時点で試しにブラウザ上からwp-config.phpにアクセスしてみると、「403 Forbidden」と返ってくることが確認できるかと思います。

    次にパーミッションを「400」に変更し、所有者のみ読み込み権限を与えておきましょう。

    コンテンツ一覧へ戻る

    xmlrpc.phpの無効化

    スマホアプリから等、管理画面から行う通常の投稿以外の方法を実現するために必要となるファイルですが、特にそういった運用が想定されない場合はハッキングの踏み台になりかねないので、こちらも.htaccessでアクセス不可にしておきましょう

    「xmlrpc.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。

    # xmlrpc.php protect
    <Files xmlrpc.php>
    order deny,allow
    deny from all
    </Files>
    

    不要であれば本来削除でも良いのですが、バージョンアップの度にファイルが復活してしまいますので、.htaccessで制御が無難ですね。

    コンテンツ一覧へ戻る

    ダッシュボードへのアクセスを日本国内IPに制限

    主に不正アクセスや悪意ある攻撃というのは海外からが目立ちます…というか殆どです。そこでよく挙げられているのがBasic認証による二重保護になるかと思うのですが、今回は日本国内IPに制限するという対策をご紹介したいと思います。

    以下のサイトを使用することにより、日本国内IP制限された「.htaccess」ファイルをダウンロードすることが出来ます。
    日本国外からのアクセスを制限する.htaccess

    ダウンロードした「htaccess」を「wp-admin」ディレクトリに格納後「.htaccess」となるようにリネームします。これでダッシュボードには日本国内IPのみしかアクセスできない状態になりました。

    後は、念のため「wp-login.php」へのアクセス自体も同様にしておきましょう。
    先ほどダウンロードした「htaccess」を流用し、「wp-login.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。

    # wp-login.php日本国内制限
    <files wp-login.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
    ...
    ...
    

    コンテンツ一覧へ戻る

    wp-includesディレクトリのブロック

    基本的にユーザーからアクセスが想定されない部分ですので、こちらはmod_rewriteを用いてブロックしてしまいます。

    「wp-config.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。

    # Block the include-only files.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
    </IfModule>
    

    マルチサイトで運用されている場合は7行目のコードを削除してください。

    コンテンツ一覧へ戻る

    ダッシュボードからのファイル編集を無効化

    テーマやプラグインのファイル等はダッシュボードから編集できるようになっておりますが、特にそのような運用が想定されないようであれば、編集できないように無効化しちゃいましょう。

    「wp-config.php」に以下のコードを追記します。

    // ファイル編集の無効化
    define('DISALLOW_FILE_EDIT', true);
    

    コンテンツ一覧へ戻る

    というわけで、今回はプラグインを使わずに簡単に施せるセキュリティ対策についてご紹介しました!
    ここで詳細は割愛させていただきますが、他にもプラグインを使いアクセスログを取るログイン時に文字認証を導入する、等など、色々なセキュリティ対策があります。
    また、定期的なバックアップアップデートを行い常に最新を保つ、というのが重要ですね。

    できる限りのセキュリティ対策を行い、安全で快適なWordPressライフを楽しみましょう!

    コメントする

    トップへ戻る