LinkStory Wiki
【セキュリティ対策】WordPressまとめ
①ログインURL(wp-login.php)を変更する
【WPS Hide Login】のプラグインを入れて、ログインURLを変更する。
②wp-login.phpにBasic認証をかける
// .htpasswdに記入 【重要】末尾は必ず1行空白の行を入れてください!
// 例として【ユーザ名:linkstory】、【パスワード:linkpass】で作ったものが以下です。これを「.htpasswd」というファイルを作成し、wp-login.phpがあるディレクトに入れてください。
linkstory:FT76hJLiqayj.
// .htaccessの作成
// .htaccessをwp-login.phpと同じ階層に作成します。既にある場合はそれに下記を追記します。
<Files wp-login.php>
AuthUserFile ※ここに「.htpasswd」へのフルパスを記入 例 /var/www/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>
// 「AuthUserFile」のフルパスがわからない、エラーが出て表示されない場合は、「path.php」などのファイルを作成し、以下を記述。ブラウザでアクセスすると、ルートからのフルパスが表示されます。
<?php
echo __FILE__;
?>
// 【重要】Basic認証をかけた場合の注意点
// 予約投稿が正しく機能しなくなる場合があるので、以下を「.htaccess(wp-login.phpと同じ階層の)」追記
<FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>
③日本国内からしかアクセスできないようにする
国内からしかアクセスできないようにして、海外からの攻撃を防ぐ対策です。
●日本国内のIP一覧はこちらから → http://www.cgis.biz/tools/access/
// .htaccessに記載、フォルダ丸ごとかけたい場合は、そのディレクトリ内に.htaccessを作成
<FilesMatch "wp-admin|wp-login\.php|xmlrpc\.php|wp-cron\.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
・
・
</FileMatch>
④特定のフォルダのクローラ巡回拒否
// サーバーのルートに「robots.txt」を設置して記述
User-Agent: *
Disallow: /wp/wp-content/themes/template/ディレクトリ名/
拒否したいフォルダがいくつかある場合は、「Disallow」以下の文をコピーして増やしてください。
⑤特定のファイルをアクセス拒否にする
各ファイルがあるディレクトリ内の「.htaccess」に記載してください。
//その1
//wp-config.phpに不正アクセスされるとデータベース乗っ取られるので、全てアクセス拒否にする
<Files wp-config.php>
order allow,deny
deny from all
</Files>
//その2
//このファイルは、ダッシュボード以外やプラグインなどから、ファイルをアップロード、投稿など、ワードプレスを操作する場合に用いられるもの。
//ここから不正アクセスを受けることもあるので、使用しないのであれば、全てアクセス拒否にする。
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
// index.phpへのPOSTアクセス禁止
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{REQUEST_METHOD} ^POST
RewriteRule .* - [F]
</IfModule>
// uploadsディレクトリでのphpの実行を制限する
//そもそもuploadsフォルダ内でPHPを実行する必要はないので。
//uploadsディレクトリ内に.htaccessを作成
<Files *.php>
deny from all
</Files>