Plone 使ってた頃から誰も攻めてきたことなんてないけど。
もくじ
ディレクトリのファイル一覧を表示させない
1 2 3 4 |
<Directory "/var/www/html"> … #Options Indexes FollowSymLinks Options FollowSymLinks |
管理系画面に Basic 認証をかける
「wp-login.php」と「/wp-admin/」以下のファイルについて Basic認証をかけ、ユーザ名とパスワードを入れないとアクセスできないよう制限をかける。
.htpasswd の作成
「.htpasswd」ファイルを作成する。どこに置いてもいいので、外部に公開されない場所に置いておこう。「.htaccess」と同階層に置いてしまうと、「.htpasswd」にアクセスできないような条件を「.htaccess」に追加で書く羽目になり面倒なことが増える。
またファイル名も「.htpasswd」でなくとも構わない。「.htpasswd_unko」とかでもOK。
1 2 3 4 |
>htpasswd -mc C:\hoge\.htpasswd username New password: ******** Re-type new password: ******** Adding password for user username |
wp-login.php 用の設定
wordpressインストールフォルダ直下に「.htaccess」ファイルを置く。「wp-login.php」アクセス時のみ認証を行うよう設定する。
1 2 3 4 5 6 |
<Files wp-login.php> AuthType Basic AuthUserFile .htpasswd ファイルのフルパス AuthName "適当な文言" require valid-user </Files> |
/wp-admin/ 用の設定
wordpressインストールフォルダ/wp-admin に「.htaccess」ファイルを置く。ただし、「admin-ajax.php」にアクセスした場合は認証を行わない(「admin-ajax.php」を使っているプラグインを考慮して)。
1 2 3 4 5 6 7 8 9 10 |
AuthType Basic AuthUserFile .htpasswd ファイルのフルパス AuthName "適当な文言" Require valid-user <FilesMatch "(admin-ajax\.php)$"> Satisfy Any Order allow,deny Allow from all Deny from none </FilesMatch> |
他サイトからフレームで呼ばれないようにする
header.phpに以下を追加し、X-Frame-Options HTTPレスポンスヘッダを指定する。
1 2 3 |
<?php header('X-Frame-Options: DENY'); ?> |
DENY: どこからも禁止。SAMEORIGIN: 自分のドメインからはOK、他からは禁止。フレーム系を使う予定はないので今回は DENY にした。
その他
意味あんのかなぁ。
- 最新バージョンを使う(そりゃな)
- WordPressのバージョンを示す meta タグを消す(そんなに意味あるの?ダサイから消したけど)
- 「admin」ユーザを作らない(ユーザ名を変えたところで投稿者名のところに nigauri とか出ちゃってるけど)
- DBのプレフィクスを変更する(DBに入られちゃったりSQL流されちゃったりした時点で負けだけど)
サーバ移転後の設定
自宅サーバからレンタルサーバに移転したときに変更した箇所。
ディレクトリのファイル一覧を表示させない
勝手にそういう設定になっていた。
管理系画面に Basic 認証をかける
.htpasswd を .htaccess と同じ階層に置く。AuthUserFile のパスを修正。さらに .htaccess に以下の設定を追記。
1 2 3 |
<Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> |
他サイトからフレームで呼ばれないようにする
header.php ではなく .htaccess で設定するようにした。以下の設定を追記。
1 |
Header always append X-Frame-Options SAMEORIGIN |