WordPressのパーミッションを変更してセキュリティを高める



パーミッション(=permission=許可)は3桁の数値で表されています。
この数値を変えることによりファイルの権限を設定しセキュリティを高めることができます。

パーミッションを変更することにより弊害が生じる場合もあります。

その場合は一旦パーミッションを元の数値に戻せば OK です。

.htaccessにコードを追記してWPセキュリティを高める

パーミッションの変更方法

FTPソフトを使う

「ファイルを右クリック→パーミッションの変更」から変更することができます。

【FTP】FileZillaのインストール&接続方法

サーバーのファイルマネージャーを使う

wp-config.php

/public_html/wp-config.php

たとえば、「wp-config.php」はデフォルトでは 644 となっており他者でも読み込みが可能ですが、
「600」に変更することによりセキュリティが高まります。

  • 所有者のみ read、write (6) を許可
  • 他者は権限なし (0)

もしくは「400」(所有者のみ読み取り可能)でも良いかと。
「400」に設定した場合は「wp-config.php」を書き換える時はパーミッションを一旦「600」に変更し、書き換えたら「400」に戻しておきます。

.htaccess

/public_html/.htaccess

644→604に変更。

.htaccessに追記した方が良いコード

xmlrpc.php

※アップデートで復活する

アプリなどでリモートで記事投稿ができる機能になります(XML-RPC)
注意点としては Jetpack やピンバックやトラックバックも使えなくなるので、使っている場合は無効化しない方が良いかと。使っている場合は xmlrpc.php を無効にするのではなく .htaccess で IP アドレス指定が有効です。

DDoS 攻撃の踏み台にすることが流行っていますので、使っていないのであれば「400」もしくは「000」に変更しておくと安心です。

/public_html/xmlrpc.php
/wp-includes/class-wp-xmlrpc-server.php

AH01512: mod_mime_magic

当サイトでは「000」に設定してあるのですが、ブルーフォースアタック攻撃をされると、エラーメッセージが届くようになりました。これもまあ安心と言えば安心…

[日付] [mime_magic:error]
[pid ~:tid ~]
[client 206.189.85.228:60912]
AH01512: mod_mime_magic:
can't read `/public_html/xmlrpc.php'

wlwmanifest.xml

/wp-includes/wlwmanifest.xml

アップデートで復活します。
Windows Live Writer で投稿しなければ「000」もしくは削除推奨。

AH00132:Permission denied

無効化した後 ブルーフォースアタック攻撃をされたらエラーメッセージが届くようになりました。

[日付] [core:error] [pid ~:tid ~]
(13)Permission denied: 
[client 40.122.114.186:57358] 
AH00132: file permissions deny server access: 
/public_html/wp-includes/wlwmanifest.xml

wp-mail.php

/public_html/wp-mail.php

アップデートで復活します。
メールで投稿しない場合は「000」もしくはファイル削除が安心です。

WordPress のビルトインメール投稿機能は非推奨になっており、今後のリリースで削除される予定です。
メールによるブログ投稿 – WordPress Codex 日本語版

.user.ini

このファイルの中身を変更すると「php.ini」が上書きされます。
wp-config.php と同様に 600 もしくは 400 が望ましいです。

wp-includes

wp-includes はデフォルトでは「755」になっていますが、
「700」(所有者に対してのみ、すべてのファイルの書き込み権限を許可)の方が良いようです。

参照:ファイルパーミッションの変更 – サポートフォーラム – WordPress.org 日本語

というのも、今までは.htaccessで制御していたのですが WordPress 6 のアップデートでエラーが表示される(ユーザー名が表示される)ようになったファイルがあるので。
エラーが出てもすぐに気が付くものではないのでバーミッション「700」が確実かと。
(もしアップデートなど支障が出たら705か755にすると良いです)

wp-adminとwp-content

デフォルトでは「755」となっていますが「705」に変更します。

他のファイル

index.php などはデフォルトでは「644」となっていますが「604」に変更しておくと良いです。

install.php

/wp-admin/install.php
/wp-admin/install-helper.php

「000」推奨ですが、一部のファイルがWordPressから書き込みできないエラーが生じる場合があるので.htaccessで設定した方が良いかも。

themesとuploads

/public_html/wp-content/themes
/public_html/wp-content/uploads

755→705に変更しました。

  • 所有者に読み取り、書き込み、実行を許可
  • グループの権限なし
  • その他のユーザーには読み取りと実行を許可

php.ini

/php.ini

644→600に変更。

補足:削除しても良いファイル

これらのファイルは削除してもアップデートで復活するので、その都度削除が必要になりますが、
アップデートは年に数回しかないので、そう面倒なことではないです。
不要なファイルは削除してスッキリ整理しておくと見やすくて良いです。

WordPress のライセンス規約。

/license.txt

WordPress の説明書き。

/readme.html

wp-config のサンプル。

/wp-cofig-sample.php

トラックバック機能。

/wp-trackback.php

メールで投稿。

/wp-mail.php

エックスサーバー