スターサーバーでセキュリティホールになりそうな仕様を塞ぐ

セキュリティ意識とは、「まっさかwwそんなのがwwww脆弱性になるわけないじゃんwwwww」という考えを捨てることだと私は思っている。危険はいつも隣り合わせ。

セキュリティホールになりかねない仕様

1行でまとめると

サブドメインのサイトにルートドメインからアクセスできる

詳しく

今回問題となるのは、スターサーバーのサブドメインに関する仕様だ。

このブログを含め、私の持っているWebページはスターサーバーのハイスピードプランでホストされている。
そしてこのスターサーバーの仕様において、ユーザーディレクトリの構造は以下のようになっている。

chikage.net[ルートドメイン]/
 └ public_html/
  ├ blog.chikage.net[サブドメイン]/
   ├ .htaccess
   ├ .user.ini
   ├ index.php
   └ [その他WPに必要なファイル]
  ├ .htaccess
  ├ .user.ini
  └ index.html

このディレクトリ構造を見て、聡い方ならお気づきだろう。
https://blog.chikage.netには、https://chikage.net/blog.chikage.netでもアクセスできてしまうのだ!

…これがセキュリティ上悪いかと言われれば微妙だが、気持ち悪さがあることは間違いない。
そこで、これを改善しようというのが今回の目的だ。

.htaccessでアクセス制限をする

1行でまとめると

/[ルートドメイン]/public_html/.htaccessでアク禁する

詳しく

public_html直下にある.htaccessはサブドメインでは無視されることを利用して、ルートドメインからサブドメインのディレクトリへアクセスできないようにする。

具体的には、/[ルートドメイン]/public_html/.htaccessに以下を追記する。

# サブドメインディレクトリをアク禁
SetEnvIf Request_URI "/*\.chikage\.net/$" sub_dir
Order Allow,Deny
Allow from all
Deny from env=sub_dir

これにより、すべてのサブドメインのディレクトリへのアクセスができなくなった。
もちろんサブドメインからは問題なくアクセスできるはず。

コメント

タイトルとURLをコピーしました