概要と動作デモ

任意のPerl-CGIスクリプトに、IDとパスワードによる認証機能を極めて手軽に追加することができます。「掲示板を会員制にしたいけど、今使ってるCGIにそんな機能ない。.htaccess等も使えない。」という方におすすめです。

バージョン1.1より、ApacheがBASIC認証に使用するユーザー認証ファイル(.htpasswd)と同じ形式のテキストファイルを、アカウント情報として使用できます。従って、別途この形式のファイルを編集するプログラムを使ったユーザー管理が行えるかもしれません。

動作デモとして、KENT-WEBで配布されているASKA BBSにこれをを組み込んでみましたのでご覧ください。ユーザー名もパスワードも test です。

動作要件

Perlで書かれたCGIスクリプトの、CGIが出力するページをプロテクトします。例えばSUN BOARDのように、表示部がHTMLファイルに分離されているようなものには組み込めません。その他CGIスクリプトの特性によっては、組み込めない場合もあります。

認証にクッキーを利用しています。クッキー非対応のブラウザでは認証できません。

サーバにはPerl5以上がインストールされている必要があります。

利用許諾

いわゆるX11ライセンス(MITライセンス)の下で自由にご利用いただけます。

利用許諾はバージョン1.4からようやく「明記」しました。ほったらかしにしていてすみませんでした。

ダウンロード

ダウンロード後、ファイル名を"gateway.cgi"等に変更してください。漢字コードはShift_JISで書かれています。CSS定義ファイルはサンプルです。必要ならばご自分で書き変えて使ってください。

"gateway.cgi"の拡張子は、あなたのサーバでCGIの実行権のある拡張子に変更してください。例えば、設置後、"gateway.cgi"にブラウザで直にアクセスした際、サーバエラーになれば問題ありませんが、スクリプトの中身が表示されたり、「ファイルのダウンロード」ダイアログが出る場合は、パスワードが漏れているということです。

設置方法

初期設定

"gateway.cgi"をテキストエディタで開き、「初期設定」の部分を書き換えます。外部のユーザー認証ファイルを使わない場合は、アカウントの設定($USERNAMES)と、ホームページのURI($HOME_PAGE)との2つを書き換えればとりあえずはOKです。

CGIスクリプトへの組み込み

組み込みたい対象のCGIスクリプトをテキストエディタで開き、最初の方に以下の1行を挿入してください。perlのパスの真下、2行目あたりが丁度良いでしょう。

require './gateway.cgi';

サーバへの設置

"gateway.cgi"を組み込みたいCGIスクリプトと同じディレクトリに設置してください。アスキーモード(テキストモード)でFTP転送することに注意してください。パーミッションは604とします。

ファイルとパーミション
ファイル等 パーミション 解説
cgi-bin 701 任意の設置ディレクトリ
aska.cgi 705 組み込む対象のCGIスクリプト
gateway.cgi 604 スクリプト本体
gateway.css 外部スタイルシート

もっと安全な設置方法

上記の設置方法に成功したら、できれば以下のような配置を試してください。"gateway.cgi"を外部からアクセスできない場所("public_html"の外)に移動することで、より安全になります。

上の例だと、"aska.cgi"に記載すべきパスは以下のようになります。

require '../../gateway.cgi';

更新履歴

更新日と公開日が数日ずれている場合があります。

スクリプトの更新履歴(新着順)
更新日 バージョン 更新内容
2007-04-18 1.4
  • 利用許諾を明記した。
  • CONTENT_LENGTHを0にする処理を追加。
2006-01-12 1.3
  • スクリプトの名前を変更。(旧 "gateway.pl")
  • スクリプトのURIが空になることがある不具合を修正。
2006-01-11 1.2
  • 「アカウントの設定」部分の書き方を変更。
  • 設定項目「クッキーのパス」「スクリプトのURI」を追加。
  • クッキーのパスの既定値を「スクリプトのあるディレクトリ」に変更。
  • スクリプトのURIとして、相対URIを取得するように変更。
  • HTMLの出力をXHTML1.0に変更。
2004-05-14 1.1
  • 外部のユーザー認証ファイルの使用をサポート。
  • 出力部分の細かい修正。
2003-10-23 0.4
  • 出力部分の細かい修正など。
2003-08-26 0.3
  • フォーム用のCookieが発行されていなかったので修正。
2003-08-23 0.2
  • 設定項目「戻り先URL」「広告スペース」追加。
  • 認証できないときにエラーを出すようにした。
  • 出力部分の細かい修正。
2003-04-28 0.1
  • 公開。
This is Index of confetto. © 2003-2007 confetto.