これは、IIS(Internet Infomation Server) & VBScript & ASP(Active Server Pages) & CGI(C & Perl 言語) 用です
はじめに
ASP(Active Server Pages) & CGI でのプログラム開発中にサーバ環境変数、引数、標準入力などがプログラムとどのように通信しているかという一覧が見たいと思ったので作りました。
まぁ、プログラムをやる人には、この程度は、ちょちょいのちょいと作れるはずですので、
これは、自分用です。
必要なたびに、ディスクの中を探すのが面倒なので、Web にあげただけですので....
ようは、
CGI(C 言語)の場合(実行形式は、VC++6.0でコンパイル)は、
envp ポインタ、argv ポインタを流しているだけです。
環境変数 CONTENT_LENGTH があれば、その長さ分だけ、getchar() しています。
(っつー事で、ANSI C なので、この部分は、UNIX 系でも widnows 系でも使えます)
CGI(Perl 言語)の場合は、
連想配列(ハッシュ)%ENV{環境変数}と、配列@ARGV{コマンドライン引数}を回しているだけです。
環境変数 CONTENT_LENGTH があれば、その長さ分だけ、read しています。
ASP の場合、
ServerVariables コレクションを利用しているだけです。
さらに、Browser Capabilities コンポーネントのプロパティも表示しまっせ。
(MS 社に最新がある Browscap.ini ファイルを利用し、HTTP_USER_AGENT から、様々な情報を引き出すコンポーネントです)
調査項目
本プログラムで調査できる項目は、
- ASP
- 環境変数の一覧(ServerVariables コレクション)
- Post データの一覧(Form コレクション)
- Get データの一覧(QueryString コレクション)
- クッキーの一覧(Cookies コレクション)
- アプリケーション変数の一覧(Application.Contents コレクション)
- セッション変数の一覧(Session.Contents コレクション)
- CGI(C & Perl 言語)
- CGI プログラム上で扱える環境変数の一覧(envp ポインタ)
- CGI プログラムに引き渡される引数の一覧(argv ポインタ)
- 標準入力データ(CONTENT_LENGTH が設定されていた場合)
動作環境
IIS において、スクリプト & 実行権限のある仮想ディレクトリ上で動作します。
CGI だけならば、CGI 実行権限のある Web サーバであれば動作するはずです。
(C のソースは付属しています)
テストは、MS-WindowsNT4.0 & IIS4.0 で行いました。
SSI は、通常の WindowsNT は、禁止されているので、レジストリ
"HKLM\system\CurrentControlSet\Services\W3SVC\Parameters\SSIEnableCmdDirective"
(REG_DWORD) の値を 0 (有効) にする事で SSI が可能となると思います。
(ただし、セキュリティは低下すると思います)
使用方法
ダウンロードしたファイルを解凍しします。
(LHAは、吉崎栄泰氏が、著作権を所有)
それらを、IIS の仮想ディレクトリへ移動し、
ブラウザーで entry.htm へアクセスするだけです。
しかし、IIS の場合 SSI は、うまく動かないかもしれません。
ちなみに、
IIS4.0 での、SSI のカレントディレクトリは、"%SystemRoot%\System32" のようです。
セキュリティ
入力情報をサニタイジング(HTML エンコード)していないですよ。
まぁ、デバグ用のツールなんで、あえてサニタイジングしていないですよ。という事で...(^^;)
(実際は面倒くさいだけかも...)
セキュリティ CGI メモはここ
To Do List
- csh や sh のスクリプトも欲しいと思う今日この頃...
免責など
著作権は放棄します。
このソフトを使用したことによって生じた、
いかなる損害についても責任は持ちません。
ソースコードについても、各自の責任において、
自由にいじってくれてもいいです。
DownLoad(iis_debug.lzh as 64,014byte) (iis_debug.lzh.base64)
mail to active@window.goukaku.com