|
「ワードでホームページ」は日本一簡単です!!
緒方です。さてある重要なセキュリティの組み込みで、対策ができたブログに書ける、やっていない間はとても書けないという・・・話題です。
そんな裏事情書いてもいいのか?という感じですが、対策できたので書こうと思います。
ホームページツールのサーバー側のシステムはImpressCMSというソフトなのですが、この日本語版のエディターには、ckeditor、エディターから画像の一覧を表示するのに kcfinder という、有名な組み合わせで作りこんでいるのですが、このkcfinder
ってログイン確認をしていないのです。
Kcfinder
の設定の中に、使えるかどうか?という設定があって、たいていのブログや記事ではこのフラグをOFF(OFFが使える状態)にしろと書いてあるのです。本来はこのフラグはON(ONで使えない)にしておき、ログインして使える人ならOFFにするというロジックを自前で組み込んでね・・・というものなのです。
でもロジックを自前で組み込まないと使えないので、単純にOFFにしろと書いてあり、たいていのWebマスターの方は、OFFで使ってしまっているというのが実情なのです。
この問題に気づいたのはImpressCMSを使いだして数年経って後です。あるサイトで、ある日、数枚の画像ファイルが消えていたことがありました。その時は連絡を受けて、バックアップを取っていたので、そこから復旧させたのですが、原因を調べるとこの問題がわかりました。Kcfinder って誰でも入れてしまうんだ・・・もちろん削除もできるわけですし、アップロードまでできてしまう危険な状態、絶句してしまいました。
当時見つけた記事がこちらです。
KCFinderの設置の注意点
この記事によると、実際危ない状態になっているサイトが散在するとのこと。またアドレスがバレなきゃ大丈夫さと思った方もいるかもしれないが、Googleでググれば探せてしまうそうです。
ということで私のシステムでもセキュアな状態に対策できているので、注意喚起をしておこうと、この記事を書いています。
ロジックはどうしたかというと、このON、OFFではなくて、kcfinder
の実行が開始されるところで、いろいろ環境をチェックしているところがあるので、そこにImpressCMSのログイン状態が、管理者であるかどうかのチェックロジックを入れました。
このロジックはImpressCMS専用にしてしまったので、もしXoopsでやりたい場合は、変数名を変えてもらえば使えるかと思います。こんな感じ。たった数行です。
require_once
'../../../mainfile.php';
if
($icmsUserIsAdmin == false) {
exit();
}
管理者でなければ、exit するので、真っ白なブランク画面になります。ちなみにその後は数年、多数のサイトを運営しておりますが、こういう画像が消されるという事象は起こっていません。
みなさま気をつけましょう。
|
|