IT関係の友人から「サイトのファイル一覧が見えてるよー。」ってメール来た。
見えてるのは分かっていたが全く気にしてなかったんだけど、セキュリティ的に良くないと聞いたからには放っとく訳にはいかないので対策をとる事に。
ファイル一覧てのは上の画像の画面みたいな「index of /…」って言う奴です。
今回はそのファイル一覧を非表示にする方法の備忘録です。
この備忘録の対応条件はさくらサーバーでwordpressを使用している事です。
indexファイルを入れてみたり.htaccessを試してみたり…
一番簡単な対策方法は各フォルダにダミーの「index.html」を入れること。
各フォルダにindexファイルが無いからファイル一覧が表示されちゃうんだけど、だったら仮のindexファイルを作ってあげれば良いって訳です。
一番簡単だけど、wordpressは毎月自動的にアップロードフォルダが勝手に作られちゃうから、その都度indexファイルを入れるのは面倒臭いからボツ。
ちなみに、サイトを表示する上で必要なindexファイルが入っているフォルダにダミーindexファイルを入れちゃ駄目ですよ。indexが上書きされてサイトが表示されなくなっちゃいます。
続いて「.htaccess」でファイル一覧を非表示にする方法を試してみた。
ftpソフトは「.(ドット)」で始まるファイルは表示されないとの事だったので初期設定で表示されるように変更してみると、自動的に作成された.htaccessを発見。
それにググって出てきたファイル一覧を非表示にするコードを追記したらサイトその物が表示されなくなって心臓止まった(笑)。
(((( ;゚д゚))))アワワワワとなりながらもバックアップしといたファイルをアップロードし回復。
どうやら、さくらサーバーは.htaccessでファイル一覧を非表示するには特殊な手段が必要らしい。
何が駄目だったかも説明出来ないくらいイミフーなので詳しくは書けん。
と言う訳で別な手段を探すことにした。
さくらサーバーのコンパネで設定出来るらしい
いろいろ調べてみると、さくらサーバーはコントロールパネルでファイル一覧を表示しないように設定が出来るらしいではないか。
と言う訳で、早速さくらサーバーにログインして試してみた。
さくらサーバーのコントロールパネルにログインしたら、左サイドバーのファイルマネージャーの旧バージョンをクリック。旧バージョンじゃなくても出来るのかもしれないけど、よく分からなかったので旧バージョンを使いました。
旧バージョンをクリックするとファイルマネージャーが開くので、画面の右上にあるウェブアクセスの設定をカチッとクリック。
クリックすると、フレームのページが表示されます。右フレームの一番下にindexファイルと言う項目があり、上の画像の様な初期状態になっています。
アクセスしたフォルダにindexファイルの名前に登録してあるindexファイルがある場合はそれを表示させ、無い場合はフォルダが存在しない場合の動作で指定してある動作をするみたいです。
ご覧の通り、ファイルが存在しない場合の動作が「フォルダ内の一覧を表示」になっているのでファイル一覧が表示されちゃったんでしょうね。
そこで、アクセスを拒否するにチェックを入れ変更を送信ボタンをクリックして設定を保存。
これでファイル一覧が非表示になるはず…。
ここでトラブル発生!
どれどれとサイトにアクセスしてみたら、さくらサーバーでwordpressを利用している全てのサイトがInternal Server Errorとなり、正常に表示されなくなってしまったではないか。焦りまくりながら「フォルダ内の一覧を表示」に戻したが、今度はどのページにアクセスしてもファイル一覧しか表示されなくなってしまった…。
つまり、完全にwordpressサイトが閲覧不可能になってしまった。
察するに、「indexファイルの名前」に初期登録してあるindex.htmlまたはindex.htmがフォルダ内に無い状態で「アクセスを拒否する」にした為アクセスが拒否されてしまい、「フォルダ内の一覧を表示」に戻した結果、今度はindex.htmlまたはindex.htmが無いからファイル一覧が表示されてしまったのだと思う。
これには本気で焦った。
ギャァァァァァァァァァ!!(;;゚;Д;゚;)ってなった。
慣れない事を見様見真似でやった結果コレである。
でも、放置は出来ないから足りない頭を使って必死に考えたらヒラメイタ。
足りない頭を必死に使ってトラブル解消!
フォルダ内に「indexファイルの名前」に登録してあるindexファイルが無いから問題が起きてる訳だから、「indexファイルの名前」にwordpressのindexファイルであるindex.phpを追加すれば良いんだね。これでindex.phpがあるフォルダにアクセスがあった場合はindex.phpを表示させる様になりサイトが正常に表示され、無い画像フォルダ等にアクセスがあった場合はアクセスを拒否する様になるわけだ。
コッチ方面がド素人の俺が何で気が付いたかと言うと、さくらサーバーに入れてあるMovable Typeのサイトは正常に表示されたのよ。Movable Typeのindexファイルはindex.htmlで、wordpressはindex.phpなんだよ。て事は…ってね。まぁ、設定画面をよく読めばそー書いてるんだけどねw
危うくショック死しそうになったけど結果オーライです。
さくらサーバーでファイル一覧を非表示する方法をまとめると、
- さくらサーバーのコンパネで設定を変える。
- wordpressの場合はindexファイルの名前にindex.phpを追加する。
- フォルダが存在しない場合の動作をアクセスを拒否するにする。
こんな所でしょうか…。
サーバーによって非表示にする方法が異なると思います。
サーバーの説明を読んでも分からない人は、無理をせず大人しく各フォルダにダミーのindexファイルをアップロードするのが一番間違いないと思います。
俺みたいな初心者がサーバーの設定を弄るのは危険です。
どうか無理はなさらぬように…。
COMMENTS:2 COMMENTS
CATEGORY:WORDPRESSTAGS:wordpress web