セブンアンドワイさんのWEB通販サイトがちょっと(や、ちょっとじゃなく)ひどいんじゃないかと言うことで話題になってしまっています。
最初のうち、「大変だねぇ」って見ていたのですが、人のこと笑っている場合じゃないということに思い当たりました。
7&Yのネットショッピングサイトのソースコード、公開サーバー内の「.svn」ディレクトリより流出? – スラッシュドット・ジャパン
WEBサイトのファイルを何にも考えずにsvnで管理していたら、デフォルトでソースコードは丸見えになっているのです。
ちゃんと対策している人からしたら、「そんなことも知らないのか」だと思うのですが、Apacheのデフォルト設定で見えるのだから、見えてしまっている人、結構多いんじゃないでしょうか。自分も一通り見直してみたら、丸見えになっているサイトが見つかりました・・・(>_<)
あわてて対策したので、対策まとめです。
1.ドットで始まるディレクトリを見せない
とにかくまずは見えないようにしましょう。Apacheに設定を追加します。
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
<Directory ~ "\.svn">
Deny from all
</Directory>
<Directory ~ "\.git">
Deny from all
</Directory>
これだと、.svnと.gitディレクトリを見せない設定になります。
ただこれだと、将来たとえば.mogyaとかいうディレクトリを作るバージョン管理ツールが出てきたらまた同じ問題に悩まされることになるので、いっそのことドットで始まるディレクトリパスは一切見せないことにしました。
<LocationMatch "/\..*">
Deny from all
</LocationMatch>
2.そもそも.svnディレクトリをあげない
mogya 自分が管理している中に、 .svnが見える設定になっているサーバがあった。Apacheのデフォルトだと見えちゃうのだから、設定した覚えがない人はみんな見えちゃうはず。これって結構深刻な問題なのでは。
masuidrive @mogya つうか、.svnをサーバにアップしてることが間違えなんじゃ?.htaccessとかで見れなくしても、危険だよ。スクリプトのバグで見えたりするかもしれないし。
大変もっともな指摘をいただきました。対策はこちら。
mogya 最新版をsvn update で持ってくるとどうしても入っちゃうと思うのですけど、どうやって管理されてますか?
masuidrive @mogya svn exportで取ってきますよー。うちは概ねcapistranoとかツールでやっているので。
なお、すでにsvn updateで運用しているシステムから.svnを消したい場合は、
$ svn export ./ ./ –force
ってしてあげるといい感じです。
自分もとりあえずあわてて対策打った感じなので、それじゃ甘いとか、もっと楽な方法があるとか、教えていただけるとうれしいです。