My Jeans CMS:2010年 06月の記事

ver 0.8.9を公開 [一般的なこと]

2010年6月28日

SVN219にて、versionを0.8.9としました。0.9.0のプレリリースです。以前のバージョンをお使いの方は、DB構造の変更がありますので、こちらの記事を参考にして変更してから、ファイルを上書きしてください。

DBテーブル構造の変更 [一般的なこと]

2010年6月28日

ver 0.8.9 (もしくは0.9.0)で、DBテーブル構造の変更を行います。以前のバージョン(0.8.0もしくは、管理画面で0.8.0と表示されるSVNバージョン)から0.8.9以降にバージョンアップする前に、次のクエリーを管理画面の「データベース」ページにて実行してください。

jp_SkinFiles作成中 [一般的なこと]

2010年6月25日

現在、jp_SkinFilesプラグインを作成中です。殆どできました。これを用いると、スキンの編集がJeansの管理画面上で行えます。スキンの派生に対応してディレクトリ表示するので、派生スキンの構造が分かりやすくなるはずです。

また、jp_SkinFilesには、メディアアップロード機能を持たせます。Jeans本体ではアップロードしたメディアはデータベースに保存していますが(セキュリティー上の理由で)、jp_SkinFilesをメディアマネージャーに指定すると、ファイルとして保存されます。こういった方法でもセキュリティーが確保できるのは、jp_SkinFilesを扱えるのは管理者だけだからです。他方、デフォルトのメディアマネージャーは、管理者でないメンバーでもアップロードできるようになっています。

jp_SkinFilesの完成後、データーベース構造の変更を若干行って、ver 0.9.0とします。もしかしたら、ver 0.8.9を出して様子を見てから、0.9.0とするかもしれません。

オートアップグレードの仕組みの考察 [セキュリティー]

2010年6月2日

少し前、Twitterで複数の方々と議論したことですが、WordPressやConcrete5では、新しいバージョンが出たときに、FTPなどでアップロードすることでアップデートするのではなく、管理画面でボタンひとつでできるとの事。こういった機能があることがモダンなCMSの基準のひとつではないかとの事でした。

こういった機能は魅力的で、さまざまな層のユーザーを獲得できる可能性を秘めています。一方で、こういった機能を用いるとセキュリティーの問題がどうしても発生します。CMSをインストールするサーバーでは、各実行ファイルを読み書き可能な設定(777とか666とか)にする必要があり、サーバー管理の基本から離れてしまいます。ただ、個人のブログなど、そういった厳密なサーバー管理よりも利便性のほうがより優先されるようなケースも有るので、このあたりはユーザー側の選択に任せるという考え方も有ります。

セキュリティー上の問題は、新しいバージョンのファイルを配布する側にも発生しえます。例えば、サーバーにアップロードした配布ファイルを悪意のある人物に書き換えられるとか、中間者攻撃で悪意のあるファイルがユーザーの側に渡ってしまうとかです。あるCMSで実際にこういった攻撃がなされたこもあります。こういった攻撃が成功すると、該当のCMSを使用している複数のサーバーに攻撃コードを挿入されてしまうので、非常に危険です。

こういった攻撃をさけるために、MD5やSHA1などのハッシュ値を公開するということが良く行われます。ユーザーの側では、受け取ったファイルのハッシュ値が公表されているものと同一かどうかを調べることで、そのファイルが信用できるかどうか判断できるわけです。ただし、中間者攻撃を受けるとハッシュ値も書き換えられてしまいますので、平文ではなく、SSLなどを使ってハッシュ値のやり取りを行う必要があります。

エラー処理 [一般的なこと]

2010年6月2日

以前のバージョンまでは、デバッグモードにすると、不正アクセスがある場合にどこでエラーが出たかなどの詳細情報が表示されていました。これでは、不正アクセスをしてきた相手に知られたくない情報まで与えてしまいます。

そこで、SVN205では、デバッグモード(_CONF_DEBUG_MODE)として、管理者がアクセスした時だけ、エラーの詳細情報を表示するモードを追加しました。config.phpで、_CONF_DEBUG_MODEにadminを指定すると、このようになります。デフォルトでこの設定にしました。この場合、エラーが出た場合は最小限の情報だけ表示するようになります。