セキュリティ&プログラミングキャンプ2009で「ブラウザに依存したWebアプリケーションセキュリティ」について話します

このところ、MySQLPerl 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、管理が容易なウェブアプリケーションを、誰かに簡単に書いて欲しい、という理由があるからです。
ただ、Apache for Win32 だとどうしてもありきたりになるので、tinytinyhttpd(tthttpd)とCGIを組み合わせて、どうやってデモ用のウェブアプリケーションを作るのかという話をメモ書きしてみることにしました。

今回作成した設定ファイル htttpd.ini は以下のような感じ。

[global]
port=8080
root=C:/htdocs
indexpages=index.html
charset=shift_jis
[mime/types]
bmp=image/bmp
cgi=@c:/windows/system32/cscript.exe //nologo /e:jscript 

設定ファイルの末尾で拡張子 cgi に対して CScript を指定していますが、これにより、*.cgiを要求されたときには JScript で書かれたスクリプトの結果を返すことができます。

WScript.Echo( "Content-Type: text/html;charset=Shift_JIS\n" );
WScript.Echo( "<html><head><title>test</title></head>" );
(function(){
     WScript.Echo( "<body>" );
     WScript.Echo( "Hello, tinytinyhttpd + JScript World" );
     WScript.Echo( "</body>" );
})();
WScript.Echo( "</html>" );

こうやっておくと、普段使いなれた JavaScript(JScript) でサーバ側のちょっとしたアプリケーションも書けてしまいます。便利!
ちなみに、tthttpdのソースを落とし始めてからここまでたったの5分ほど。Apacheのインストールして conf 書きなおして…より早いかも!id:mattn++
Enjoy!