今回はレンタルサーバーの「セキュリティ」に関するお話です。
題名は「バックアップ」関連のようなのに、なぜ「セキュリティ」なのか?
バックアップフアイルはレンタルサーバーに置かない
WordPressを使っている人は特にそうだと思いますが、レンタルサーバー上には「function.php」とか「index.php」とかいろいろファイルがあります。
たとえば、トップディレクトリには
- wp-config-sample.php
- license.txt
- readme.html
など、普段使っていないファイルもあります。
一番危険なのはzipファイル
WordPressだけでなく、htmlでサイトを構築している人もカスタマイズをするたびにバックアップを保存していると思います。
しかし、
- どうやってバックアップを取っているか?
- どこにバックアップファイルを保存しているか?
が非常に重要です。
一番危険なのは、こんな感じでWordPressのバックアップやファイルのバックアップをレンタルサーバーに置きっぱなしにしておくことです。
このバックアップは一番危険です。
zipファイルはダウンロードが可能だからです。
たとえば、直にURLを指定してアクセスされた場合、このようにダウンロードできてしまいます。
もしアカウントやパスワードが記載されているzipで圧縮されているバックアップファイルをダウンロードされたら・・・
サイトやブログが乗っ取られてしまいます。
悪意を持った人が総当たりでURLを試して、zipファイルを見つけるかもしれません。
プログラムでURLを総当たりで試すことは可能です。
数年間毎日アタックされたらzipファイルを見つけられるかもしれません。
だからレンタルサーバー上にバックアップファイルは置かないようにしましょう。
ApacheはMIMEタイプを判断している
Apacheとはhttpサービスを提供しているアプリケーションです。
レンタルサーバーにアップロードされたhtmlファイルがブラウザから読めるのはApacheが処理をしているからです。
Apache(httpd)はレンタルサーバーにアップロードされているファイルを判別する「機能」があります。
具体的には、Acpacheはリクエストされたファイルの拡張子とファイルの内容とファイルの振る舞いを関連付けて判別しています。
たとえば、test.txtファイルを作りました。
Apacheは「拡張子」と「ファイルの中身」を見て、テキストファイルと判断します。
※もっと詳しくいうと、「mod_mime_magic」が組み込まれていると、拡張子で判断できなかった場合、ファイルの中身まで調べてMMEタイプを判断します。
そして、ファイルが何なのか?テキストファイルなのか、Excelファイルなのか、pdfファイルなのか、というファイルのタイプのことを「MIMEタイプ」と言います。
つまり、Apacheは「test.txt」の「MIMEタイプ」を「テキストファイル」と判断して開くときにはテキストエディタで開けるようにします。
そのため、Webアプリを作る際は注意が必要になります。
一般的なレンタルサーバーならすでに対策が取られていると思いますが、VPSなど自分ですべて設定するタイプのサーバーの場合は、思わぬ動きをすることもあるので注意が必要です。
たとえば、.backupなどレンタルサーバー上にバックアップファイルを置きっぱなしにすると、自分で管理できているうちは問題ないかもしれませんが、いつ想定外の動きをするのか読めないからです。
基本的にレンタルサーバーにファイルは公開されるものだと思い、セキュリティには十分気を使わなければいけません。
コメント