セキュリティ&プログラミングキャンプ2009で「ブラウザに依存したWebアプリケーションセキュリティ」について話します
このところ、MySQL と Perl 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、管理が容易なウェブアプリケーションを、誰かに簡単に書いて欲しい、という理由があるからです。
ただ、Apache for Win32 だとどうしてもありきたりになるので、tinytinyhttpd(tthttpd)とCGIを組み合わせて、どうやってデモ用のウェブアプリケーションを作るのかという話をメモ書きしてみることにしました。
- tthttpd の zipball または tarball をダウンロード。
- 展開したディレクトリで nmake /f makefile.mvc として VC++ でコンパイル。
- 適当なディレクトリに tthttpd.ini みたいなのを作成。
- コマンドプロンプトから tthttpd -c tthttpd.ini とすることで、8080/tcp でHTTPサーバが動きます。
今回作成した設定ファイル 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!