目次
< 記事一覧

【セキュリティ対策】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>

  

  

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です