Joyful Note X のソースを公開

JOYFUL NOTE v6.02 + Lightbox2(v2.7.1) & Bilingual Edition v1.00

この度、画像掲示板のCGI「Joyful Note(v6.02)」を改造することにより、日本語と英語のバイリンガルに対応させ、Lightbox2(v2.7.1)を組み込んだシステム「Joyful Note X v1.00」のソースを公開します。
このシステムは、このサイトの掲示板でも運用されております。

Lightbox2の機能を組み込む事で、写真をクリックすると、同一画面上に写真がポップアップ表示されるようになります。
バイリンガル機能については、日本語のみ、または英語のみの単体利用も可能です。

このソースは、フリーウェアの位置づけとさせて頂きますが、ご利用にあたって、いかなる損害に対しても当方は一切の責任を負いませんし、サポートも一切お受けしません。(但し、バグ報告は受け付けます)

以上の事を予めご承知の上でご利用願いますが、このプログラムの利用にあたって、ご一報頂けると嬉しく思います。

JOYFUL NOTEとLightbox2のライセンスに関しては、それぞれの作者のライセンス規定に帰属します。

ダウンロードページは、こちらです 👉 Joyful Note X v1.04
* 5月26日 更新

Joyful NoteにLightboxの機能を追加

このサイトに設置された写真掲示板のプログラム(Joyful Note v6.02)を改修し、Lightboxの最新バージョン(2.7.1)を組み込みました。 👉 Photo BBS based on Joyful Note X

👉 Joyful Note X のソースコード(Ver1.04)を公開

写真をクリックすると、同一画面上に写真がポップアップ表示されるようになります。
最新バージョンのLightboxは、jQueryをベースに開発されています。

Lightboxの公式サイトは、こちら 👉 http://www.lokeshdhakar.com/projects/lightbox2/

しかし、この改修が新たなセキュリティホールにならない事を祈ります。 (..;)

* 5月27日 追記
 懸念箇所は、記事の編集でタイトル名にタグの「>」を入力し、XSSが記述される事ですが、実験したところ、ちゃんと「>」に変換されているので、多分大丈夫だと思います。

Joyful Noteと秀丸エディタに脆弱性が発覚!

本日、NVD(National Vulnerability Database)に報告されていた以下の二つのソフトウェアを更新しました。

 

「Joyful Note」(PerlのCGIプログラム)は、このサイトの画像掲示板で使用しているため、修正が急がれました。
しかし、バイリンガルに対応するためプログラムを修正していたため、少し、更新に時間を要しました。
ついでに、サーバーのパーミッションの関係で、「.css/.js」ファイルが正常に読めていなかったバグも修正しました。 * 当該ディレクトリに以下の定義を追加

 

Windowsプログラマが愛用する「秀丸エディタ」にも、意外な脆弱性発覚です! (°°;)

ワードプレスからPerlのアクセス解析プログラムを呼び出す実験

これまでの実験で、WordPressにおけるテーマのheader.phpより、単純にperlのアクセス解析プログラム「perlstats.cgi(仮称)」を呼び出すと、サーバーの環境変数が引き継がれない事が判明しています。

今回は、WordPressのindex.phpのプログラム内にperlのアクセス解析プログラムを呼び出す実験をしました。
なお、普通に呼び出すと、やはり環境変数が渡らないようなので、予め、PHPのプログラム側から環境変数を取得し、パラメーターで渡す方式でperlのプログラムも修正しました。

index.phpのプログラムコードは、以下の通りです。
(セキュリティ上、実際のコードを少し修正しています)

 

perlstats.plの実行後の結果を表示する管理プログラムの画面を以下に示します。

 

上の画面を見ると、以下のサーバーの環境変数は、引き渡されている事が分かります。

REMOTE_HOST
REMOTE_ADDR
HTTP_USER_AGENT

しかし、残念ながら、リンク元URLの集計が’0’のままなので、HTTP_REFERERは送られていない模様です。

そこで、そもそも、HTTP_REFERERがPHPならびにperlで正しく設定されているのかどうかを確かめるため、簡単な実験サイトを作って検証して見ました。

まず、使用可能な環境変数を表示するPHPのプログラム「server_key.php」です。(以下)

 

次に、使用可能な環境変数を表示するperlのプログラム「server_key.pl」です。(以下)

 

そして、それらのプログラムを呼び出す側のHTMLコード「test_referer.html」です。 (以下)

 

上の二つのリンクのそれぞれの結果は、以下の通りです。

PHP、perlともサーバー環境変数の取得はちゃんと出来ている事がこれで、分かりました。
WordPress上でなければ、問題なく動くようです。

 

問題は、三番目のリンク(index.php)です。
結局、HTTP_REFERERは取得できていませんでした。

そこで、index.phpへのコードの挿入位置に問題があるのかもしれないという事で、以下のように変更して見ました。

 

その結果は、見事に失敗でした。 (>_<)

PHPの同一スコープ内に置いても、同じ結果でした。
NewStatPressなど、WordPressのプラグインでHTTP_REFERERの情報が非同期にリセットされているような気がするのですが、詳しい原因は私には良く分かりません。
もしかしたら、プラグイン「WP Super Cache」によるキャッシュが原因かもしれません。

この件で解る方、誰か、エロイ先生教えて下さい!!(笑)

という事で…

WordPressからperlプログラムへHTTP_REFERERを渡すのは難しいので、perlのアクセス解析プログラム「perlstats.cgi」において、「リンク元URLの集計」の部分はできないという事で諦めます。 orz