• ベストアンサー

バスワードと経過時間によるアクセス制限

お世話になっております。 一台のPCで複数の人が使うため、 アクセスできるサイトに制限をかけたい。 (1)ベーシック認証でないアクセス制限  理由は「パスワードを保存する」をチェックされてしまうと、  誰でも閲覧できてしまう。 (2)何もアクセスしず、一定時間が過ぎたら、以降のアクセスを無効にしたい。  再度、パスワードを要求する。 CGIを検索しましたが、見つかりませんでした。 ご紹介いただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

そういう目的で使用するのがセッション管理です。 セッションID(SESID)を利用することでセッション管理を擬似的に 再現するものです。 大手のサイトでログイン処理を行うような者では大抵、セッション管理で ログイン状態を管理していると思います。 PerlだったらCGI::Sessionが有名ですが、他にもいくつかあります。 PHPでは初めからセッション管理機能が実装されています。 セッションIDは任意の時間で有効期限を設定したりできます。 また、CookieにSESIDを登録しておくと自動でログインさせたり Cookieの有効期限が切れたときに自動でログアウトしたりします。

miracle2006
質問者

お礼

ご回答、ありがとうございます。 セッション管理で検索していたら、下記のサンプルを見つけました。 =========================================================================== # オブジェクトの初期化: use CGI::Session; $session = new CGI::Session(); $CGISESSID = $session->id(); # クッキーを含む適切なHTTPヘッダーの送出: print $session->header(); # セッションにデータを格納 $session->param('f_name', 'XXXXX'); # データの回収 my $f_name = $session->param('f_name'); # 特定セッションパラメータのクリア $session->clear(["f_name"]); # '_is_logged_in'フラグは10分間アイドルした後期限切れになります $session->expire('is_logged_in', '+10m') # '_IS_LOGGED_IN'フラグは10分間アイドルした後期限切れになります $session->expire(_IS_LOGGED_IN => '+10m'); # セッションそのものが1時間アイドルした後期限切れになります $session->expire('+1h'); # セッションを削除したほうが良いでしょう $session->delete(); =========================================================================== これを「認証用のcgi」に組み込めば、いいのでしょうか?  XXXXXは、認証用のIDでいいのでしょうか?

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> 一台のPCで複数の人が使うため、アクセスできるサイトに制限をかけたい。 Windows PCだったら、 ・管理者グループ(Administrators/Power Users)からの除外。 ・グループポリシーの適用 ・インターネットオプションでのコンテンツ制限 ――とか標準機能でまかなえそうな。 あと「Windows SteadyState」とかどうでしょ。 http://www.microsoft.com/japan/windows/products/winfamily/sharedaccess/ > CGIを検索しましたが、見つかりませんでした。 CGI関係ないのでは。いわんやPerlにおいておや。

miracle2006
質問者

補足

ご回答、ありがとうございます。 私の説明不足で申し訳ありません。 「アクセスできるサイトに制限をかけたい。」としたのは、 私は「サイトを作る立場」で、お尋ねしました。 「.htaccess」を作成したりすると思いますが。