#!/usr/bin/perl
$ver = 'Gate v2.6';
#---------------------------------------------------------------#
# ・このスクリプトはフリーソフトです。このスクリプトを使用した #
# いかなる損害も作者はその責を負いません。 #
# ・設置に関する質問は直接メールではお受けできませんので必ず #
# 「サポート掲示板」へお願いいたします。 #
#---------------------------------------------------------------#
# ■設置例
# /home/kent/
# |
# +-- private_html / secret.html [644] ... 隠しファイル
# |
# +-- public_html / index.htmlなど
# |
# +-- member / gate.cgi [755]
# log.dat [666]
# ■アクセスログの閲覧の仕方 (gate.cgi?mode=admin)
# http://〜〜/member/gate.cgi?mode=admin
# *上記のように、?mode=admin という引数を付けてアクセスする。
# *管理用パスワードの入力画面となりますので、下記設定の $pass で
# 指定するパスワードを入力して下さい。
#============#
# 設定項目 #
#============#
# 隠しファイルのフルパス
# --> HTMLファイルの場合は、現在位置からの相対パスで記述
# 編集されるため表示ファイル内は絶対パスで記述
# --> CGIファイルの場合は、http:// からのパスで記述
#$goto = "http://www.comboy.jp/cgi-bin/test.cgi?thm=01";
$goto = "../yabai/downpg.html";
#x$goto = "/main.html";
# 隠しファイルの種類 (HTML=0 CGI=1 その他=2)
$kind = 0;
# bodyタグ
$body = '
';
# スクリプトファイル名
$script = "./gate.cgi";
# method形式 (POST/GET)
$method = 'POST';
# アクセスログの記録 (0=no 1=yes)
$logkey = 1;
# 管理者用パスワード (英数字)
$pass = 'ComboyCoJp';
# 集計一覧からの戻り先
$home = '../index.html';
# アクセスログファイル
$logfile = './log.dat';
# アクセスログ最大保持数
$max = 100;
# ユーザIDとパスワードを指定
# --> 上下のID/PASS配列はコンマで区切っていくつでも指定可
# --> 上下の配列は必ずペアで
@UserID = ('comboy', 'takanashi');
@UserPW = ('7777', 'takefumi');
# ホスト名取得方式
# --> 0 : $ENV{'REMOTE_HOST'}
# --> 1 : gethostbyaddr
$gethostbyaddr = 0;
#============#
# 設定完了 #
#============#
## COSMO GATEのメイン処理
&decode;
if ($buffer eq "") { ✓ }
if ($mode eq "admin") { &admin; }
&pass_chk;
if ($kind == 0) { &html_view; }
elsif ($kind == 1) { &cgi_view; }
else {
if ($logkey) { &axslog; }
print "Location: $goto\n\n";
}
exit;
#-----------------------------#
# パス一致の処理 (HTML出力) #
#-----------------------------#
sub html_view {
# 対象ファイルを確認
# unless (-e "$goto") {
# &error("隠しファイルへの「パス」指定が不正です");
# }
#
# HTMLを読み込み
open(IN,"$goto") || &error("Open Error : $goto");
@lines = ;
close(IN);
# Macでバイナリー転送されたHTML対応
if (@lines == 1 && $lines[0] =~ /\r/) {
@lines = split(/\r/, $lines[0]);
}
# HTMLを表示
print "Content-type: text/html\n\n";
foreach (@lines) {
print $_;
}
if ($logkey) { &axslog; }
}
#--------------------------------------#
# パス一致の処理 (フレームでCGI出力) #
#--------------------------------------#
sub cgi_view {
print "Content-type: text/html\n\n";
print "\n";
print "SECRET FILE\n";
print "\n";
print "\n";
if ($logkey) { &axslog; }
}
#------------------#
# パスワード画面 #
#------------------#
sub check {
# クッキーを取得
&get_cookie;
&header;
print <<"EOM";
|
|
USER IDとPASSWORDを入力してください $goto
|
Copyright (C)
2001 by COMBOY Corporation.All Rights Reserved.
|
|
EOM
exit;
}
#------------------------#
# パスワードエラー処理 #
#------------------------#
sub pass_error {
&header;
print <<"EOM";
パスワードが不正です
戻る