HTACCESSに設定を記載するだけでできるセキュリティー対策をいくつかご紹介いたします。
この記事の目次
HTACCESSとは?
ワードプレスのインストールフォルダにある、サーバーの設定を書き込むファイルです。ワードプレスではパーマリンクの設定に使われますが、セキュリティー対策としてサーバーの設定を書き込むのに使うこともできます。
FTPソフトウェアでサーバーにアクセスして、ダウンロードして編集し、再アップロードして設定を適応できます。
Indexリストの表示の禁止
Indexリストとは、フォルダにindex.php,index.htmlがない場合に、ブラウザーでアクセスするとそのフォルダに含まれるファイルの一覧を自動で出力するサーバーの機能です。
このリストが検索エンジンが拾ってしまい、検索結果に脆弱性のあるプラグインのフォルダが乗ってしまったり、どういったファイルがサーバーにあるのかをハッカーが調べる際に役に立つためIndexリストの自動生成を行わないようにします。
↓HTACCESSファイルに下記の1行を追記します。
IndexIgnore *
オーサー情報の出力を禁止する
ワードプレスではサイトのドメインに加えて?author=1 と追記してアクセスするとユーザー番号1(管理者)のユーザー名等の情報が表示されてしまうテーマがあります。
会員登録が可能なサイトでは上記の数値を変えてアクセスすることで様々なログインユーザーのIDが露見してしまいます。
これを防ぐためにauthor= という文字列がURLに含まれている場合に遮断してしまう設定が下記となります。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^author/(.*) - [R=404,L] RewriteCond %{QUERY_STRING} author=(.*) RewriteRule ^$ - [R=404,L] </IfModule>
UploadフォルダでのPHPプログラムの実行を禁止する
wp-content/uploadsフォルダ は主にコンテンツに埋め込んだ画像のデータを保持しているフォルダです。
不正な改ざん(バックドア)やマルウェアは、wp-content/uploadフォルダに悪意あるPHPプログラムを書き込むことがあります。このプログラムに外部からのアクセスを禁止します。
wp-content/uploadsフォルダにあるファイルかつphpという拡張子の場合にのみ、外部からアクセスできなくする設定が下記となります。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^.*wp-content/uploads/.*\.php.*$ - [F,L] </IfModule>
wp-includeフォルダのPHPプログラムの直接アクセスを禁止する
wp-includeフォルダはワードプレスの様々な機能をプログラムが読み込んで使うプログラム群が格納されているフォルダです。
このフォルダにあるphpファイルは、外部から直接アクセスされることはないので、外部からの直接アクセスを禁止してしまうことができます。
このことにより、wp-includes フォルダに何らかのマルウェア(バックドア)が埋め込まれてもその後のハッカーの活動をできなくしたり、別のハッカーがこのバックドアを利用できなくすることが可能です。
<IfModule mod_rewrite.c> RewriteEngine On 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>
コメントスパムを抑制する
ワードプレスのコメント欄に、スパムコメントが大量に書き込まれる場合、HTACCESSに下記の記載をするだけでスパムコメントを抑制することができます。
コメントスパムは、ハッカーが非常に多くのサイトにプログラムを使い機械的に書き込みます。下記のHTACCESSの設定で、
・コメントの書き込みプログラムへのアクセス かつ
・あなたのサイトのドメイン経由でないアクセス者 もしくは
・ブラウザーの種別やバージョンの情報が欠落しているアクセス者
をはじきます。
※あなたのサイトのドメイン の部分はあなたのサイトのドメインと置き換えてください。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post\.php(.*)$ RewriteCond %{HTTP_REFERER} !(^.*\:\/\/あなたのサイトのドメイン) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule .* http://127.0.0.1 [L] </IfModule>
さらに、プロクシサーバーというアクセスを経由する仕組みを使いクセス元を隠しているユーザーに関してもコメントの投稿を禁止します。
下記のHTACCESSの設定は、プロクシサーバーに特有の情報がアクセス者に含まれている場合コメント書き込みの際にはじいてしまう設定です。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} ^POST RewriteCond %{HTTP:VIA} !^$ [OR] RewriteCond %{HTTP:FORWARDED} !^$ [OR] RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_HOST} !^$ [OR] RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteRule wp-comments-post\.php - [F] </IfModule>
※こちらの設定は全て
【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]
をお使いいただくと簡単にワードプレスの管理画面からHTACCESSに書き出すことが可能です。