Zenphotoのセットアップファイルは削除

この記事は最終更新日から4年以上経過しています。
内容が古い可能性がありますのでご注意ください。

2013年8月30日に発生したロリポップ!のハッキング騒ぎ。ハッキングの直接の被害には遭わなかったが、ロリポにインストールしていたフォトギャラリーCMS「Zenphoto」で、訪問者にデータベースの接続情報(パスワード含む)が丸見えになるという事態になった。

当時の状況と対策(セットアップファイルの削除)についてメモ。

ロリポの顛末は以下を参考にしてもらうとして、この際、データベースのパスワードが運営によって強制変更された。データベースを使っているCMSなどはパスワード設定を変更しないとならない。

私は冒頭で述べたZenphotoを使っていたわけだが、パスワード強制変更措置がとられたあとサイトを見に行ったところ、インストールやアップグレードの時にだけ表示されるセットアップ用画面が表示されていて、データベースのユーザー名、ホスト名が丸見えに。
しかもパスワードが「●」になってるけど、ソース見たらずばり平文で書かれてる!
サイト見に来た人に内部設定がバレバレに!!

zp_01.png

今回の場合はデータベースサーバ側のパスワードがすでに変更されていたから、この画面に表示されたパスワードを知られたところで害はなかったけど、それでもめちゃくちゃマズい状態なのは間違いない。

以前のZenphotoでは、インストールが終わったらセットアップ用ファイルは自動で削除されたか、手動で削除しろと指示があったけど、最近は残ってるのか……と思って調べたらこんな記述が。

Re-running and re-uploading setup files

The setup scripts are automatically protected for security reasons after a successful install or upgrade.

Sometimes Zenphoto will request you to re-run the scripts. This is a security measure if Zenphoto detects a change on your install. This might also be triggered if server software (e.g. MySQL or PHP) on your server has been updated. Using the ...zp-core/setup link will normally unprotect the scripts and run setup. If not you may need to re-upload the setup scripts.

Installation, Upgrading and Requirements | User guide | Zenphoto - The simpler media website CMS

乱暴に訳してみるとこうかな。

Zenphotoのインストールが完了するとセットアップファイルは自動で(パスワードで?)保護される。
インストールしてるサーバに何か変更があった場合は保護を解除する。

いやいやいや、やばいだろそれ。解除しちゃダメでしょ。
ユーザーが仕様変更を事前に知っていてあらかじめ対処できればいいけど、今回みたいな場合は危険きわまりない状態になる。

そういうわけで、Zenphotoのインストールやアップグレードが終わったら、不測の事態に備えてセットアップにまつわるファイルとフォルダを必ず削除しておくべき。
削除すべきはこの2つ。

  • /zp-core/setup.php
  • /zp-core/setup (フォルダ全部)

これらを削除した状態でサーバの仕様が変更になるなどして、先ほどの丸見えページが表示される状態になった場合、こんな画面になる。とりあえず設定丸見えにはならない。

zp_02.png

セットアップを再度実行したい場合は、インストールされているのと同じバージョンのZenphotoをダウンロードしなおして、その中の「/zp-core/setup.php」「/zp-core/setup」を同じ場所にアップロードすればいい。
その際、この方法↓で自分以外はアクセスできない状態にしておくこと。

そしてセットアップが完了したらファイルを削除することを忘れずに。

※執筆時のZenphotoのバージョンは1.4.5.1。