UserID と Password なしでは、アクセスできない事。
Link や画像、cgi なども動作する事。
手元でチェックできるように、オフラインで Link や画像なども動作する事。
cookie をつかったアクセス制限もどきになりました。
動かしてみる UserID, Password は guest です。
private.cgi の中身
アクセスできない様にするためにファイルの実体は、public_html の中におかずに、 private_html というディレクトリをつくって、アクセス制限されたファイル群を置く事にします。
ディレクトリとファイルの配置の例/home4/gama/ | +- public_html/ このディレクトリ下のファイルが公開される。 +- cgi/ +- step12.htm このファイル +- private/ +- private.cgi パーミッションは 700 アクセス制限もどきの本体 +- private_html/ このディレクトリ下はパーミッションが 700 のため、cgi を経由しないとアクセスできない。 +- img/ | | +- blue.gif | | +- green.jpg +- welcome.htm +- p1.htm +- p2.htm +- p3.htm +- env.htm +- set.sh パーミッションは 700 env.htm から呼ばれています。 +- list.cgi パーミッションは 700 1行変更して動作しています。 +- text.cgi パーミッションは 700 変更なしで動作しました。 +- passwd パスワードのファイルディレクトリのパーミションを 700 にしておくとそのディレクトリの下のファイルは普通は見る事ができません。 private.cgi をとおしてアクセスする事になります。
<A HREF="abc.htm">abc</A>とかくところを、
<IMG SRC="abc.gif">
<A HREF="./abc.htm">というよう、"./" をファイル名の先頭につけて書いたものを private.cgi で
<IMG SRC="./abc.gif">
<A HREF="private.cgi?abc.htm">と変換してブラウザに渡す事にします。
<IMG SRC="private.cgi?abc.gif">
これで、オフラインでも動作するし、 オンラインでは private.cgi をとおしてアクセス制限付きになるはずです。
private.cgi は step2 での ssi.cgi の機能を持っています。 ssi.cgi としての機能は、問題なく動作しているようです。
private.cgi は 拡張子から Content-type を判断しています。.html .htm .gif .jpg .jpeg.cgi は、その出力に従う事にします。
cgi への対応は、不十分ですが動く場合もあります(^^;;;
<A HREF="foo.cgi?para">foo</A>とかくところを、
<IMG SRC="foo.cgi?para">
<A HREF="./foo.cgi?para">というよう、"./" をファイル名の先頭につけて書いたものを private.cgi で
<IMG SRC="./foo.cgi?para">
<A HREF="private.cgi?foo.cgi¶">と変換してブラウザに渡す事にします。
<IMG SRC="private.cgi?foo.cgi¶">
cgi が意図したとおりに動かないケースは、いろいろあります(^^;;;
post method のものは、ほぼ動きません(^^;;;
ユーザー名:暗号化されたパスワード
という行からできています。
暗号化されたパスワードを作る
genpwd.htm の中身
genpwd.cgi の中身
ディレクトリをプロテクトする
rescue でのアクセス制限の解説
ユーザーのルートにディレクトリが作成可能でした。
こういう方法では実現できなかったという失敗例です(^^;;;
nph による 401 もどき
中身
ブラウザからは本物のアクセス制限のダイアログが出ます。
ここで入力した UserID,Password が、CGI 側からわかれば、 本物みたいに見えるものが作れるとおもったんですが、 さすがに、UserID とか Password が、CGI 側では分かりませんでした。
98/06/22 未明 サーバーの設定変更により、nph は動作しなくなったようです(^^;;;
99/11/15 サーバーの設定変更により動作するようになりました。