過去にWordPressを使っていたサブドメインなしのドメイン直下にクッション用のindexページを作ってみたが、脆弱性を探るようなファイルスキャンっぽいアクセスが絶えない。
そのため以下の条件に合うような.htaccessの設定を行った。
- 旧URLのアクセスに対する301リダイレクト
- .htmlと.txtのファイルへのアクセスは許可
- 「/wp-content/uploads/YYYY/MM/」ディレクトリ下の画像等のファイルに対して410エラーを返す
- 「/feed/」等消したことを強調したい一部のディレクトリに対しても410エラーを返す
- 上記以外のアクセスに対しては一律403エラーを返す
以下、設定した.htaccessの中身
#---.htaccessの中身を外から見られないように---
<Files ~ "^\.ht">
deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#---リダイレクト処理 ここから---
RewriteRule ^101_passport/$ https://tw.cytn.info/p/taiwan-japan-passport.html [R=301,L] [R=301,L]
RewriteRule ^102_immigration/$ https://tw.cytn.info/p/taiwan-japan-immigration.html [R=301,L]
-----中略-----
RewriteRule ^blog/usb4_tb_usb-pd_doc/$ https://blog.cytn.info/2022/01/usb4-tb-usb-pd-doc.html [R=301,L]
RewriteRule ^blog/2022_cal_txt/$ https://blog.cytn.info/2022/01/2022-cal-txt.html [R=301,L]
#---リダイレクト処理 ここまで---
#---.htmlと.txtの許可---
RewriteCond %{REQUEST_URI} ^/$ [OR]
RewriteCond %{REQUEST_URI} \.(html|txt)$ [NC]
RewriteRule ^ - [L]
#---特定ディレクトリで410を返す--->
RewriteCond %{REQUEST_URI} ^/comment/$ [OR]
RewriteCond %{REQUEST_URI} ^/feed/$ [OR]
RewriteCond %{REQUEST_URI} ^/blog/feed/$ [OR]
RewriteCond %{REQUEST_URI} ^/about/$ [OR]
RewriteCond %{REQUEST_URI} ^/privacy-policy/$ [OR]
RewriteCond %{REQUEST_URI} ^/blog/about/$
RewriteRule ^ - [R=410,L]
#---wp-content/uploads/の画像等のアクセスに対して410を返す---
RewriteRule ^wp-content/uploads/.*\.(jpg|png)$ - [R=410,L]
#---上記に当てはまらないものは403---
RewriteRule ^ - [F,L]
</IfModule>
/wp-content/uploads/下に関しては年月の範囲を指定した方がいいような気もする。
あと、/feed/のようなディレクトリで終わるパスの場合、/feed だと別扱いになる(この状態だと403を返す)ようなので、両方で301や410を返したければそれに対応した記述が必要になるっぽい。数がそこまで多くないのと色々と組むのが面倒だったので末尾の/ がないパターンを強引に追加したが。
また、このページに誘導リンクを貼るとリンク先に同様の不審なアクセスが来襲する可能性があるため、Googleの検索結果へのリンクを間に挟むことにした(検索結果で一番上に出てこなくなる事態も考えておく必要はあるが…)
追記
.htmlと.txtの許可の部分は上記の場合だと他のディレクトリの.htmlと.txtも許可してしまうので、現状robots.txtとindex.htmlしか設置していないので以下のように変更。
RewriteCond %{REQUEST_URI} ^/$ [OR]
RewriteCond %{REQUEST_URI} ^/robots\.txt$ [OR,NC]
RewriteCond %{REQUEST_URI} ^/index\.html$ [NC]
RewriteRule ^ - [L]
0 件のコメント:
新しいコメントは書き込めません。