SSIで引数を指定するには?
[上に]
[前に]
[次に]
とほほ
2000/03/01(水) 01:20:56
メールでSSIについて質問を受けたのですが、よくわからなかったので、
この場で質問させてください。
SSIの、パス名の書き方や、引数の指定方法がサーバーの種類によって
様々なようなのですが、とりあえず、うちの環境(Apache/1.3.9)では
次のような結果になりました。
■ <!--#exec cgi="..."--> の形式の場合・・・
○ 相対パスで呼び出す。
<!--#exec cgi="./xx.cgi"-->
× 相対パス(..を含む)で呼び出す。
<!--#exec cgi="../xx.cgi"-->
× 仮想パスで呼び出す。
<!--#exec cgi="/~xxx/xx.cgi"-->
× 絶対パスで呼び出す。
<!--#exec cgi="/usr/home/xxx/xx.cgi"-->
× 引数付きで呼び出す。
<!--#exec cgi="./xx.cgi arg1 arg2"-->
× CGI形式の引数付きで呼び出す。
<!--#exec cgi="./xx.cgi?arg1+arg2"-->
■ <!--#exec cmd="..."--> 形式の場合・・・
○ 相対パスで呼び出す。
<!--#exec cmd="./xx.cgi"-->
○ 相対パス(..を含む)で呼び出す。
<!--#exec cmd="../xx.cgi"-->
× 仮想パスで呼び出す。
<!--#exec cmd="/~xxx/xx.cgi"-->
○ 絶対パスで呼び出す。
<!--#exec cmd="/usr/home/xxx/xx.cgi"-->
○ 引数付きで呼び出す。
<!--#exec cmd="./xx.cgi arg1 arg2"-->
× CGI形式の引数付きで呼び出す。
<!--#exec cmd="./xx.cgi?arg1+arg2"-->
http://www.imasy.or.jp/~hsdl/imasy-cgi.html
で紹介されている記述とも、どうも食い違っているような気がするのですが、
上記以外の結果になる方は居られますでしょうか?
気まぐれ
2000/03/01(水) 03:38:52
Win32版Apache1.3.9前後?のバージョンはSSIの実装にバグがある
ようです。
# 自分の入っている某MLで話題があったのでアーカイブのURLを調べ
# たら、まだ反映されていなかったので、さらにその元ネタのアー
# カイブ先を書いておきます。
http://apacheml.ecc.u-tokyo.ac.jp/ml/msg03640.html
一応うちでの試験結果です。
Win32版 1.3.6
#exec cgi
○相対パスで呼び出す
○相対パス(..を含む)で呼び出す。
残りは [an error occurred while processing this directive]
#exec cmd
全滅
Linux版 1.3.3
#exec cgi
○相対パスで呼び出す
○相対パス(..を含む)で呼び出す。
残りは [an error occurred while processing this directive]
#exec cmd
○相対パスで呼び出す。
○相対パス(..を含む)で呼び出す。
○引数付きで呼び出す。(注)
でした。
なお #exec cmd での「引数付きで呼び出す。」は引数は渡っていませ
んでした。(バグってこれのことなんでしょうね)
やっぱり引数の渡し方は、hoge.shtml?arg1+arg2 とかしたほうが
いいみたいです。
今、Win32版1.3.12を落としているので近いうちにこちらも試して
結果を報告します。
気まぐれ
2000/03/01(水) 23:28:01
あれっ?なぜに誰もレスが無い?
なんかはずしてます?
お約束どおり結果報告です。
Win32版 1.3.12
#exec cgi
○相対パスで呼び出す。
○相対パス(..を含む)で呼び出す。
×仮想パスで呼び出す。
[an error occurred while processing this directive]
×絶対パスで呼び出す。
[an error occurred while processing this directive]
×引数付きで呼び出す。
[an error occurred while processing this directive]
×CGI形式の引数付きで呼び出す。
[an error occurred while processing this directive]
#exec cmd
全滅
でした。変なの〜(^^;
気まぐれ
2000/03/01(水) 23:47:02
>Win32版Apache1.3.9前後?のバージョンはSSIの実装にバグがある
すいません、これは違うようです。
バグではなくセキュリティーホールの為の仕様のようです。
WARNING-NT.TXT に書いてありました。
嘘ついてごめんなさい。m(_ _)m
とほほ
2000/03/02(木) 01:08:40
[[解決]]
他の方からも、メールで報告をいただいたりしました。
結果は・・・バラバラですね・・・。
結論!
「SSIの#exceでは、絶対パスを参照できなかったり、上のディレクトリ(..)を
含むパスを参照できなかったり、引数を指定できなかったりする。」
ってな感じにまとめるしかないな〜・・・
気まぐれさん、メールで情報をくださった方々、ありがとうございました。
気まぐれ
2000/03/03(金) 01:31:39
>ってな感じにまとめるしかないな〜・・・
と言う事は、まとめた物を掲載してくれるという事ですね。
自分も各種環境での動作が知りたいので、よろしくお願いします。
とほほ
2000/03/03(金) 10:35:07
まとめたいと思ったのですが、「使用できる/できない」にバージョン
との規則性を見つけることができそうにないので、現状は、「できない
場合もあるよ」のようにしかまとめることができませんでした。
すみません(^^;)
→ http://www.tohoho-web.com/wwwssi.htm
とほほ
2000/03/03(金) 10:40:05
ありゃ、wwwssi.htmアップデートしたつもりが、ファイルの更新に時間
がかかっているようですね。(ファイル転送した後、更新処理が必要なんです。)
もうしばらくすると、2000.3.3版のwwwssi.htmにアクセスできるように
なると思いますので、その時に見てください。(^^;)
# さぁ、そろそろ会社に行かなくちゃ・・・
[上に]
[前に]
[次に]