#!/usr/local/bin/perl ;# パスワード・リダイレクタ Password Redirector v1.0 ;# ;# Script written by Kazu.Y ;# Created on: 04/Oct/97 ;# I can be reached at: resq@rescue.ne.jp ;# Scripts Found at: http://www.rescue.ne.jp/ ;# Usage redirect.cgi?action=<読み出すファイル名>&type=<コンテントタイプ> ;# <コンテントタイプ>を省略すると text/html となる. ;# redirect.cgi を直接実行すると、保存されたクッキーに空データを上書きする. ;# 履歴(History) ;# v1.00 20/Jun/98 公開版リリース #----------------# # 初期設定 # #----------------#---------------------------------------------------------------------- #認証後に表示するファイルを置くディレクトリ(ベースディレクトリ) $base_dir = "./member/"; #パスワードファイル $pwdfile = './password.cgi'; #
設定 # 注意! の********の部分だけを設定します. $body = 'bgcolor=#ffffff'; #クッキーの有効期間 1:セッション内 0:最終実行後30日間有効 $session = 1; #--------------------------------------------------------------------------------------- #データ入力 if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } if ($FORM{'USERNAME'} =~ /\W/ || $FORM{'PASSWORD'} =~ /\W/) { &error("エラー","USERNAMEやPASSWORDに半角英数字以外が使われている場合は利用できません."); } if (substr($FORM{'action'},-1,1) eq '/') { $FORM{'action'} .= "index.html"; } #※ #クッキー取得 $cookie_path = $ENV{'SCRIPT_NAME'}; $cookies = $ENV{'HTTP_COOKIE'}; @pairs = split(/;/,$cookies); foreach $pair (@pairs) { ($name,$value) = split(/=/,$pair); $name =~ s/ //g; $DUMMY{$name} = $value; } @pairs = split(/,/,$DUMMY{$cookie_path}); foreach $pair (@pairs) { ($name,$value) = split(/:/,$pair); $COOKIE{$name} = $value; } #分岐 if ($FORM{'action'} eq '') { &cookie; $cook="USERNAME\:\,PASSWORD\:"; print "Set-Cookie: $cookie_path=$cook; path=$cookie_path; expires=$date_gmt\n"; &error("リセットOK",""); } elsif ($COOKIE{'USERNAME'} ne '' && $COOKIE{'PASSWORD'} ne '') { $FORM{'USERNAME'} = $COOKIE{'USERNAME'}; $FORM{'PASSWORD'} = $COOKIE{'PASSWORD'}; &passwd; &action; } elsif ($FORM{'USERNAME'} ne '' && $FORM{'PASSWORD'} ne '') { &passwd; &action; } &input_form; sub input_form { print "Content-type: text/html\n\n"; print <<"EOF";