KENT-WEB サポートコーナー 過去ログ [ 0376 ]


記事No: 3857
投稿日: 2008/06/13(Fri) 14:30:27
タイトル【Web Protect】隠しページにCGIを
ID情報: shiro119
投稿者: しろ
URLhttp://shutobouei.0web.cjb.net/protect/protect.cgi?

タイトルのように
Web Protectを使って
隠しページにCGIを置きたいと思っています。

設置してチェックを行うと

Check Mode
会員ファイルのパスOK!
会員ファイルのパーミッションOK!
パスファイルのパスOK!
パスファイルのパーミッションOK!
管理ログのパスOK!
管理ログのパーミッションOK!
ログファイルのパスOK!
ログファイルのパーミッションOK!
sendmailパスOK!
ロック形式 → symlink
ロックディレクトリ → ./lock
ロックディレクトリパスOK!
ロックディレクトリパーミッションOK!
Web Protect v3.2 : Copyright (c) KentWeb

という具合にうまくできているようなのですが
secret.htmlからcgiに飛ぼうとすると

Open Error: .htpasswd

と出てしまいます。

これは設置がうまくいってないのでしょうか?
それともcgiに問題があるんでしょうか?
因みにcgiはパス認証を入れない状態ではうまく設置できています。

http://shutobouei.0web.cjb.net/protect/protect.cgi?
ID:test
PASS:test

secret.htmlからのリンクに関しては、試しに
第1ページにサーバパスからのリンク
第2ページにおそらく正しいであろうリンクを置いています。


そしてパターン2を用いて設置しています。
[パターン2] ウェブ上からアクセスできないディレクトリを作成できないサーバ
/home/USER/
|
+-- public_html /
|
+-- shoku /
| secret.html
| file1.html
| file2.html
| file3.html (何もリンクを張っていません)
| .htpasswd [606]
| .axslog [606]
| .admlog [606]
| .member [606]
|
+-- protect / protect.cgi [705]
| admin.cgi [705]
| init.cgi [604]
| jcode.pl [604]
| index.html
          |    cook3.cgi [604]
|
| mulsche.cgi
| sample-key.gif
| style.css
| title.gif
| ←本当はここにjcode.plが必要なんですが、上のとかぶるので置いていません。
|
+-- lock [707] /
          |
          |
+-- data /

どなたかよろしくお願いします。
足りない情報があるかもしれませんで、指摘もお願いします。


記事No: 3858
投稿日: 2008/06/13(Fri) 14:58:42
タイトルRe: 【Web Protect】隠しページにCGIを
ID情報: pachira
投稿者: pachira
URLhttp://www5e.biglobe.ne.jp/~pachira/

> タイトルのように
> Web Protectを使って
> 隠しページにCGIを置きたいと思っています。
>
> 設置してチェックを行うと
>
> Check Mode
> 会員ファイルのパスOK!
> 会員ファイルのパーミッションOK!
> パスファイルのパスOK!
> パスファイルのパーミッションOK!
> 管理ログのパスOK!
> 管理ログのパーミッションOK!
> ログファイルのパスOK!
> ログファイルのパーミッションOK!
> sendmailパスOK!
> ロック形式 → symlink
> ロックディレクトリ → ./lock
> ロックディレクトリパスOK!
> ロックディレクトリパーミッションOK!
> Web Protect v3.2 : Copyright (c) KentWeb
>
> という具合にうまくできているようなのですが
> secret.htmlからcgiに飛ぼうとすると
>
> Open Error: .htpasswd
>
> と出てしまいます。
>
> これは設置がうまくいってないのでしょうか?
> それともcgiに問題があるんでしょうか?
> 因みにcgiはパス認証を入れない状態ではうまく設置できています。
>
> http://shutobouei.0web.cjb.net/protect/protect.cgi?
> ID:test
> PASS:test
>
> secret.htmlからのリンクに関しては、試しに
> 第1ページにサーバパスからのリンク
> 第2ページにおそらく正しいであろうリンクを置いています。
>
>
> そしてパターン2を用いて設置しています。
> [パターン2] ウェブ上からアクセスできないディレクトリを作成できないサーバ
> /home/USER/
> |
> +-- public_html /
> |
> +-- shoku /
> | secret.html
> | file1.html
> | file2.html
> | file3.html (何もリンクを張っていません)
> | .htpasswd [606]
> | .axslog [606]
> | .admlog [606]
> | .member [606]
> |
> +-- protect / protect.cgi [705]
> | admin.cgi [705]
> | init.cgi [604]
> | jcode.pl [604]
> | index.html
>           |    cook3.cgi [604]
> |
> | mulsche.cgi
> | sample-key.gif
> | style.css
> | title.gif
> | ←本当はここにjcode.plが必要なんですが、上のとかぶるので置いていません。
> |
> +-- lock [707] /
>           |
>           |
> +-- data /
>
> どなたかよろしくお願いします。
> 足りない情報があるかもしれませんで、指摘もお願いします。

以下が一致していないからです。

■init.cgi
# 隠しディレクトリ
# → サーバパスで指定( / から始まるパス )
$prvdir = '/フルパス/protect';

■cook3.cgi
# 隠しディレクトリ
# → protect.cgiの設定と合わせること
$cook3_prvdir = '/フルパス/protect';


記事No: 3860
投稿日: 2008/06/13(Fri) 17:33:18
タイトルRe^2: 【Web Protect】隠しページにCGIを
ID情報: shiro119
投稿者: しろ
URLhttp://shutobouei.0web.cjb.net/protect/protect.cgi?

> > タイトルのように
> > Web Protectを使って
> > 隠しページにCGIを置きたいと思っています。
> >
> > 設置してチェックを行うと
> >
> > Check Mode
> > 会員ファイルのパスOK!
> > 会員ファイルのパーミッションOK!
> > パスファイルのパスOK!
> > パスファイルのパーミッションOK!
> > 管理ログのパスOK!
> > 管理ログのパーミッションOK!
> > ログファイルのパスOK!
> > ログファイルのパーミッションOK!
> > sendmailパスOK!
> > ロック形式 → symlink
> > ロックディレクトリ → ./lock
> > ロックディレクトリパスOK!
> > ロックディレクトリパーミッションOK!
> > Web Protect v3.2 : Copyright (c) KentWeb
> >
> > という具合にうまくできているようなのですが
> > secret.htmlからcgiに飛ぼうとすると
> >
> > Open Error: .htpasswd
> >
> > と出てしまいます。
> >
> > これは設置がうまくいってないのでしょうか?
> > それともcgiに問題があるんでしょうか?
> > 因みにcgiはパス認証を入れない状態ではうまく設置できています。
> >
> > http://shutobouei.0web.cjb.net/protect/protect.cgi?
> > ID:test
> > PASS:test
> >
> > secret.htmlからのリンクに関しては、試しに
> > 第1ページにサーバパスからのリンク
> > 第2ページにおそらく正しいであろうリンクを置いています。
> >
> >
> > そしてパターン2を用いて設置しています。
> > [パターン2] ウェブ上からアクセスできないディレクトリを作成できないサーバ
> > /home/USER/
> > |
> > +-- public_html /
> > |
> > +-- shoku /
> > | secret.html
> > | file1.html
> > | file2.html
> > | file3.html (何もリンクを張っていません)
> > | .htpasswd [606]
> > | .axslog [606]
> > | .admlog [606]
> > | .member [606]
> > |
> > +-- protect / protect.cgi [705]
> > | admin.cgi [705]
> > | init.cgi [604]
> > | jcode.pl [604]
> > | index.html
> >           |    cook3.cgi [604]
> > |
> > | mulsche.cgi
> > | sample-key.gif
> > | style.css
> > | title.gif
> > | ←本当はここにjcode.plが必要なんですが、上のとかぶるので置いていません。
> > |
> > +-- lock [707] /
> >           |
> >           |
> > +-- data /
> >
> > どなたかよろしくお願いします。
> > 足りない情報があるかもしれませんで、指摘もお願いします。
>
> 以下が一致していないからです。
>
> ■init.cgi
> # 隠しディレクトリ
> # → サーバパスで指定( / から始まるパス )
> $prvdir = '/フルパス/protect';
>
> ■cook3.cgi
> # 隠しディレクトリ
> # → protect.cgiの設定と合わせること
> $cook3_prvdir = '/フルパス/protect';

pachiraさん
早速のレスありがとうございます。

init.cgiとcook3.cgiは以下のように設定しているんですが
いかがなのでしょうか?

■init.cgi
#-------------------------------------------------
# ▼設定項目
#-------------------------------------------------

# パスワード発行形態
# 1 : ユーザからの発行&メンテを可能にする
# 2 : 発行は管理者のみ。ユーザはメンテのみ
# 3 : 発行&メンテは管理者のみ(index.htmlは不要)
$pwd_regist = 2;

# 隠しディレクトリ
# → サーバパスで指定( / から始まるパス )
$prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';

# 隠しファイル(トップ)
# → ファイル名のみを記述
$secret[0] = "secret.html";

# 以下は隠しファイル(次ページ以降分)
# → [1] [2] [3] ... と順に続ける
# → CGIの場合のみ http://から記述すること
$secret[1] = "http://home/0web_cjb_net/zw014119/public_html/protect/mulsche.cgi"; # 隠しファイル1
$secret[2] = "http://shutobouei.0web.cjb.net/protect/mulsche.cgi"; # 隠しファイル2
$secret[3] = "file3.html"; # 隠しファイル3

# ID/PASS記録ファイル
# → ファイル名のみを記述
$pwdfile = '.htpasswd';

# アクセス履歴ファイル
# → ファイル名のみを記述
$logfile = '.axslog';
$admfile = '.admlog';

# 会員ファイル
# → ファイル名のみを記述
$memfile = '.member';

# タイトル名
$title = "国戦本部 隊員認証";

# 管理用パスワード(複雑な方がよい)
$pass = '--------';

# 本体プログラムURL
$script = './protect.cgi';

# 管理プログラムURL
$admin = './admin.cgi';

# ロックファイル形式
# → 0=no 1=symlink関数 2=mkdir関数
$lockkey = 1;

# ロックファイル
$lockfile = './lock/protect.lock';

# アクセスログ最大保持数
$max = 300;

# 戻り先URL
$backUrl = 'http://shutobouei.0web.cjb.net/bottom.html';

# 1ページ当り会員表示件数
$pageView = 50;

# 管理アドレス
$master = '--------------';

# sendmailパス
$sendmail = '/usr/lib/sendmail';

# ユーザ登録アクセス制限(半角スペースで区切る)
# → 拒否するホスト名又はIPアドレスを記述(アスタリスク可)
# → 記述例 $deny = '*.anonymizer.com 211.154.120.*';
$deny = '';

# bodyタグ
$body = '<body bgcolor="#FFFFFF" text="#000000">';

# ホスト取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
$gethostbyaddr = 0;

#-------------------------------------------------
# ▲設定完了
#-------------------------------------------------

■cook3.cgi
#-------------------------------------------------
# 設定項目
#-------------------------------------------------

# 隠しディレクトリ
# → protect.cgiの設定と合わせること
$cook3_prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';

# パスワードファイル
# → ファイル名のみを記述
$cook3_pwdfile = '.htpasswd';

# アクセス履歴ファイル
# → ファイル名のみを記述
$cook3_logfile = '.axslog';

# CGIのアクセス制限方式
# 1 : クッキーで認証する
# 2 : アクセスログより認証(ログのホスト名を利用)
$cgiAuth = 1;

# CGIのアクセス許容時間(単位:時間)
# → 認証入り口での認証後からの時間
$cgiLimit = 3;

# ホスト取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
$cgiGethostbyaddr = 0;

#-------------------------------------------------
# チェック処理
#-------------------------------------------------

ご指摘いただいたところも合わせていると思うのですが
どこかおかしいのでしょうか。
よろしくお願いします。


記事No: 3861
投稿日: 2008/06/13(Fri) 18:23:24
タイトルRe^3: 【Web Protect】隠しページにCGIを
ID情報: pachira
投稿者: pachira
URLhttp://www5e.biglobe.ne.jp/~pachira/

> > > タイトルのように
> > > Web Protectを使って
> > > 隠しページにCGIを置きたいと思っています。
> > >
> > > 設置してチェックを行うと
> > >
> > > Check Mode
> > > 会員ファイルのパスOK!
> > > 会員ファイルのパーミッションOK!
> > > パスファイルのパスOK!
> > > パスファイルのパーミッションOK!
> > > 管理ログのパスOK!
> > > 管理ログのパーミッションOK!
> > > ログファイルのパスOK!
> > > ログファイルのパーミッションOK!
> > > sendmailパスOK!
> > > ロック形式 → symlink
> > > ロックディレクトリ → ./lock
> > > ロックディレクトリパスOK!
> > > ロックディレクトリパーミッションOK!
> > > Web Protect v3.2 : Copyright (c) KentWeb
> > >
> > > という具合にうまくできているようなのですが
> > > secret.htmlからcgiに飛ぼうとすると
> > >
> > > Open Error: .htpasswd
> > >
> > > と出てしまいます。
> > >
> > > これは設置がうまくいってないのでしょうか?
> > > それともcgiに問題があるんでしょうか?
> > > 因みにcgiはパス認証を入れない状態ではうまく設置できています。
> > >
> > > http://shutobouei.0web.cjb.net/protect/protect.cgi?
> > > ID:test
> > > PASS:test
> > >
> > > secret.htmlからのリンクに関しては、試しに
> > > 第1ページにサーバパスからのリンク
> > > 第2ページにおそらく正しいであろうリンクを置いています。
> > >
> > >
> > > そしてパターン2を用いて設置しています。
> > > [パターン2] ウェブ上からアクセスできないディレクトリを作成できないサーバ
> > > /home/USER/
> > > |
> > > +-- public_html /
> > > |
> > > +-- shoku /
> > > | secret.html
> > > | file1.html
> > > | file2.html
> > > | file3.html (何もリンクを張っていません)
> > > | .htpasswd [606]
> > > | .axslog [606]
> > > | .admlog [606]
> > > | .member [606]
> > > |
> > > +-- protect / protect.cgi [705]
> > > | admin.cgi [705]
> > > | init.cgi [604]
> > > | jcode.pl [604]
> > > | index.html
> > >           |    cook3.cgi [604]
> > > |
> > > | mulsche.cgi
> > > | sample-key.gif
> > > | style.css
> > > | title.gif
> > > | ←本当はここにjcode.plが必要なんですが、上のとかぶるので置いていません。
> > > |
> > > +-- lock [707] /
> > >           |
> > >           |
> > > +-- data /
> > >
> > > どなたかよろしくお願いします。
> > > 足りない情報があるかもしれませんで、指摘もお願いします。
> >
> > 以下が一致していないからです。
> >
> > ■init.cgi
> > # 隠しディレクトリ
> > # → サーバパスで指定( / から始まるパス )
> > $prvdir = '/フルパス/protect';
> >
> > ■cook3.cgi
> > # 隠しディレクトリ
> > # → protect.cgiの設定と合わせること
> > $cook3_prvdir = '/フルパス/protect';
>
> pachiraさん
> 早速のレスありがとうございます。
>
> init.cgiとcook3.cgiは以下のように設定しているんですが
> いかがなのでしょうか?
>
> ■init.cgi
> #-------------------------------------------------
> # ▼設定項目
> #-------------------------------------------------
>
> # パスワード発行形態
> # 1 : ユーザからの発行&メンテを可能にする
> # 2 : 発行は管理者のみ。ユーザはメンテのみ
> # 3 : 発行&メンテは管理者のみ(index.htmlは不要)
> $pwd_regist = 2;
>
> # 隠しディレクトリ
> # → サーバパスで指定( / から始まるパス )
> $prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';
>
> # 隠しファイル(トップ)
> # → ファイル名のみを記述
> $secret[0] = "secret.html";
>
> # 以下は隠しファイル(次ページ以降分)
> # → [1] [2] [3] ... と順に続ける
> # → CGIの場合のみ http://から記述すること
> $secret[1] = "http://home/0web_cjb_net/zw014119/public_html/protect/mulsche.cgi"; # 隠しファイル1
> $secret[2] = "http://shutobouei.0web.cjb.net/protect/mulsche.cgi"; # 隠しファイル2
> $secret[3] = "file3.html"; # 隠しファイル3
>
> # ID/PASS記録ファイル
> # → ファイル名のみを記述
> $pwdfile = '.htpasswd';
>
> # アクセス履歴ファイル
> # → ファイル名のみを記述
> $logfile = '.axslog';
> $admfile = '.admlog';
>
> # 会員ファイル
> # → ファイル名のみを記述
> $memfile = '.member';
>
> # タイトル名
> $title = "国戦本部 隊員認証";
>
> # 管理用パスワード(複雑な方がよい)
> $pass = '--------';
>
> # 本体プログラムURL
> $script = './protect.cgi';
>
> # 管理プログラムURL
> $admin = './admin.cgi';
>
> # ロックファイル形式
> # → 0=no 1=symlink関数 2=mkdir関数
> $lockkey = 1;
>
> # ロックファイル
> $lockfile = './lock/protect.lock';
>
> # アクセスログ最大保持数
> $max = 300;
>
> # 戻り先URL
> $backUrl = 'http://shutobouei.0web.cjb.net/bottom.html';
>
> # 1ページ当り会員表示件数
> $pageView = 50;
>
> # 管理アドレス
> $master = '--------------';
>
> # sendmailパス
> $sendmail = '/usr/lib/sendmail';
>
> # ユーザ登録アクセス制限(半角スペースで区切る)
> # → 拒否するホスト名又はIPアドレスを記述(アスタリスク可)
> # → 記述例 $deny = '*.anonymizer.com 211.154.120.*';
> $deny = '';
>
> # bodyタグ
> $body = '<body bgcolor="#FFFFFF" text="#000000">';
>
> # ホスト取得方法
> # 0 : gethostbyaddr関数を使わない
> # 1 : gethostbyaddr関数を使う
> $gethostbyaddr = 0;
>
> #-------------------------------------------------
> # ▲設定完了
> #-------------------------------------------------
>
> ■cook3.cgi
> #-------------------------------------------------
> # 設定項目
> #-------------------------------------------------
>
> # 隠しディレクトリ
> # → protect.cgiの設定と合わせること
> $cook3_prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';
>
> # パスワードファイル
> # → ファイル名のみを記述
> $cook3_pwdfile = '.htpasswd';
>
> # アクセス履歴ファイル
> # → ファイル名のみを記述
> $cook3_logfile = '.axslog';
>
> # CGIのアクセス制限方式
> # 1 : クッキーで認証する
> # 2 : アクセスログより認証(ログのホスト名を利用)
> $cgiAuth = 1;
>
> # CGIのアクセス許容時間(単位:時間)
> # → 認証入り口での認証後からの時間
> $cgiLimit = 3;
>
> # ホスト取得方法
> # 0 : gethostbyaddr関数を使わない
> # 1 : gethostbyaddr関数を使う
> $cgiGethostbyaddr = 0;
>
> #-------------------------------------------------
> # チェック処理
> #-------------------------------------------------
>
> ご指摘いただいたところも合わせていると思うのですが
> どこかおかしいのでしょうか。
> よろしくお願いします。

http://shutobouei.0web.cjb.net/protect/protect.cgi?mode=check
・パスファイルのパスOK!

http://shutobouei.0web.cjb.net/protect/mulsche.cgi ←Open Error: .htpasswd

これは、間違いなくcook3.cgiが返しているエラーです。
再度、サーバ側のファイル(cook3.cgi)を見直して下さい。

試しに以下を外せば、エラーが出ない事で確信できると思います。
require './cook3.cgi';
&cookCheck;


記事No: 3862
投稿日: 2008/06/13(Fri) 18:58:19
タイトルRe^4: 【Web Protect】隠しページにCGIを
ID情報: shiro119
投稿者: しろ
URLhttp://shutobouei.0web.cjb.net/protect/protect.cgi?

> > > > タイトルのように
> > > > Web Protectを使って
> > > > 隠しページにCGIを置きたいと思っています。
> > > >
> > > > 設置してチェックを行うと
> > > >
> > > > Check Mode
> > > > 会員ファイルのパスOK!
> > > > 会員ファイルのパーミッションOK!
> > > > パスファイルのパスOK!
> > > > パスファイルのパーミッションOK!
> > > > 管理ログのパスOK!
> > > > 管理ログのパーミッションOK!
> > > > ログファイルのパスOK!
> > > > ログファイルのパーミッションOK!
> > > > sendmailパスOK!
> > > > ロック形式 → symlink
> > > > ロックディレクトリ → ./lock
> > > > ロックディレクトリパスOK!
> > > > ロックディレクトリパーミッションOK!
> > > > Web Protect v3.2 : Copyright (c) KentWeb
> > > >
> > > > という具合にうまくできているようなのですが
> > > > secret.htmlからcgiに飛ぼうとすると
> > > >
> > > > Open Error: .htpasswd
> > > >
> > > > と出てしまいます。
> > > >
> > > > これは設置がうまくいってないのでしょうか?
> > > > それともcgiに問題があるんでしょうか?
> > > > 因みにcgiはパス認証を入れない状態ではうまく設置できています。
> > > >
> > > > http://shutobouei.0web.cjb.net/protect/protect.cgi?
> > > > ID:test
> > > > PASS:test
> > > >
> > > > secret.htmlからのリンクに関しては、試しに
> > > > 第1ページにサーバパスからのリンク
> > > > 第2ページにおそらく正しいであろうリンクを置いています。
> > > >
> > > >
> > > > そしてパターン2を用いて設置しています。
> > > > [パターン2] ウェブ上からアクセスできないディレクトリを作成できないサーバ
> > > > /home/USER/
> > > > |
> > > > +-- public_html /
> > > > |
> > > > +-- shoku /
> > > > | secret.html
> > > > | file1.html
> > > > | file2.html
> > > > | file3.html (何もリンクを張っていません)
> > > > | .htpasswd [606]
> > > > | .axslog [606]
> > > > | .admlog [606]
> > > > | .member [606]
> > > > |
> > > > +-- protect / protect.cgi [705]
> > > > | admin.cgi [705]
> > > > | init.cgi [604]
> > > > | jcode.pl [604]
> > > > | index.html
> > > >           |    cook3.cgi [604]
> > > > |
> > > > | mulsche.cgi
> > > > | sample-key.gif
> > > > | style.css
> > > > | title.gif
> > > > | ←本当はここにjcode.plが必要なんですが、上のとかぶるので置いていません。
> > > > |
> > > > +-- lock [707] /
> > > >           |
> > > >           |
> > > > +-- data /
> > > >
> > > > どなたかよろしくお願いします。
> > > > 足りない情報があるかもしれませんで、指摘もお願いします。
> > >
> > > 以下が一致していないからです。
> > >
> > > ■init.cgi
> > > # 隠しディレクトリ
> > > # → サーバパスで指定( / から始まるパス )
> > > $prvdir = '/フルパス/protect';
> > >
> > > ■cook3.cgi
> > > # 隠しディレクトリ
> > > # → protect.cgiの設定と合わせること
> > > $cook3_prvdir = '/フルパス/protect';
> >
> > pachiraさん
> > 早速のレスありがとうございます。
> >
> > init.cgiとcook3.cgiは以下のように設定しているんですが
> > いかがなのでしょうか?
> >
> > ■init.cgi
> > #-------------------------------------------------
> > # ▼設定項目
> > #-------------------------------------------------
> >
> > # パスワード発行形態
> > # 1 : ユーザからの発行&メンテを可能にする
> > # 2 : 発行は管理者のみ。ユーザはメンテのみ
> > # 3 : 発行&メンテは管理者のみ(index.htmlは不要)
> > $pwd_regist = 2;
> >
> > # 隠しディレクトリ
> > # → サーバパスで指定( / から始まるパス )
> > $prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';
> >
> > # 隠しファイル(トップ)
> > # → ファイル名のみを記述
> > $secret[0] = "secret.html";
> >
> > # 以下は隠しファイル(次ページ以降分)
> > # → [1] [2] [3] ... と順に続ける
> > # → CGIの場合のみ http://から記述すること
> > $secret[1] = "http://home/0web_cjb_net/zw014119/public_html/protect/mulsche.cgi"; # 隠しファイル1
> > $secret[2] = "http://shutobouei.0web.cjb.net/protect/mulsche.cgi"; # 隠しファイル2
> > $secret[3] = "file3.html"; # 隠しファイル3
> >
> > # ID/PASS記録ファイル
> > # → ファイル名のみを記述
> > $pwdfile = '.htpasswd';
> >
> > # アクセス履歴ファイル
> > # → ファイル名のみを記述
> > $logfile = '.axslog';
> > $admfile = '.admlog';
> >
> > # 会員ファイル
> > # → ファイル名のみを記述
> > $memfile = '.member';
> >
> > # タイトル名
> > $title = "国戦本部 隊員認証";
> >
> > # 管理用パスワード(複雑な方がよい)
> > $pass = '--------';
> >
> > # 本体プログラムURL
> > $script = './protect.cgi';
> >
> > # 管理プログラムURL
> > $admin = './admin.cgi';
> >
> > # ロックファイル形式
> > # → 0=no 1=symlink関数 2=mkdir関数
> > $lockkey = 1;
> >
> > # ロックファイル
> > $lockfile = './lock/protect.lock';
> >
> > # アクセスログ最大保持数
> > $max = 300;
> >
> > # 戻り先URL
> > $backUrl = 'http://shutobouei.0web.cjb.net/bottom.html';
> >
> > # 1ページ当り会員表示件数
> > $pageView = 50;
> >
> > # 管理アドレス
> > $master = '--------------';
> >
> > # sendmailパス
> > $sendmail = '/usr/lib/sendmail';
> >
> > # ユーザ登録アクセス制限(半角スペースで区切る)
> > # → 拒否するホスト名又はIPアドレスを記述(アスタリスク可)
> > # → 記述例 $deny = '*.anonymizer.com 211.154.120.*';
> > $deny = '';
> >
> > # bodyタグ
> > $body = '<body bgcolor="#FFFFFF" text="#000000">';
> >
> > # ホスト取得方法
> > # 0 : gethostbyaddr関数を使わない
> > # 1 : gethostbyaddr関数を使う
> > $gethostbyaddr = 0;
> >
> > #-------------------------------------------------
> > # ▲設定完了
> > #-------------------------------------------------
> >
> > ■cook3.cgi
> > #-------------------------------------------------
> > # 設定項目
> > #-------------------------------------------------
> >
> > # 隠しディレクトリ
> > # → protect.cgiの設定と合わせること
> > $cook3_prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';
> >
> > # パスワードファイル
> > # → ファイル名のみを記述
> > $cook3_pwdfile = '.htpasswd';
> >
> > # アクセス履歴ファイル
> > # → ファイル名のみを記述
> > $cook3_logfile = '.axslog';
> >
> > # CGIのアクセス制限方式
> > # 1 : クッキーで認証する
> > # 2 : アクセスログより認証(ログのホスト名を利用)
> > $cgiAuth = 1;
> >
> > # CGIのアクセス許容時間(単位:時間)
> > # → 認証入り口での認証後からの時間
> > $cgiLimit = 3;
> >
> > # ホスト取得方法
> > # 0 : gethostbyaddr関数を使わない
> > # 1 : gethostbyaddr関数を使う
> > $cgiGethostbyaddr = 0;
> >
> > #-------------------------------------------------
> > # チェック処理
> > #-------------------------------------------------
> >
> > ご指摘いただいたところも合わせていると思うのですが
> > どこかおかしいのでしょうか。
> > よろしくお願いします。
>
> http://shutobouei.0web.cjb.net/protect/protect.cgi?mode=check
> ・パスファイルのパスOK!
>
> http://shutobouei.0web.cjb.net/protect/mulsche.cgi ←Open Error: .htpasswd
>
> これは、間違いなくcook3.cgiが返しているエラーです。
> 再度、サーバ側のファイル(cook3.cgi)を見直して下さい。
>
> 試しに以下を外せば、エラーが出ない事で確信できると思います。
> require './cook3.cgi';
> &cookCheck;

pachiraさん
毎度早いお答えありがとうございます。

ご指摘の通り
require './cook3.cgi';
&cookCheck;
を外すとうまく表示されました。

cook3.cgiに関しては
余計なところは全く触ってないつもりなんですが
ご一読の上ご指摘いただけると幸いです。


■cook3.cgi------------------------------------

#┌─────────────────────────────────
#│ WebProtect用CGI制限モジュール v3.1 (2004/06/16)
#│ Copyright (c) KentWeb
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────
# 【留意事項】
#
# 1. このモジュールは WebProtect (protect.cgi) でCGIをアクセス制限する
# ためのものです。
# 2. このモジュールは、protect.cgi及びアクセス制限するCGIスクリプトと
# 「必ず」同じディレクトリ内に置いて下さい。
# 3. アスキーモードでFTP転送し、パーミッションは644に設定します。
# 4. アクセス制限したいCGIスクリプトで、
# require './jcode.pl';
# の下付近に以下の2行を書き加えます。
# ---------------------
# require './cook3.cgi';
# &cookCheck;
# ---------------------
# 5. このモジュールを使用したいかなる不利益・損害等に関して、作者は
# その責は一切負いません。

#-------------------------------------------------
# 設定項目
#-------------------------------------------------

# 隠しディレクトリ
# → protect.cgiの設定と合わせること
$cook3_prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';

# パスワードファイル
# → ファイル名のみを記述
$cook3_pwdfile = '.htpasswd';

# アクセス履歴ファイル
# → ファイル名のみを記述
$cook3_logfile = '.axslog';

# CGIのアクセス制限方式
# 1 : クッキーで認証する
# 2 : アクセスログより認証(ログのホスト名を利用)
$cgiAuth = 1;

# CGIのアクセス許容時間(単位:時間)
# → 認証入り口での認証後からの時間
$cgiLimit = 3;

# ホスト取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
$cgiGethostbyaddr = 0;

#-------------------------------------------------
# チェック処理
#-------------------------------------------------
sub cookCheck {
local($id,$pw,$check,$f,$date,$hos,$age,$tim);

# タイムゾーン設定
$ENV{'TZ'} = "JST-9";
$time = time;

# クッキー式
if ($cgiAuth == 1) {

# クッキー取得
local($cid,$cpw,$cck,$ctm) = &cookGetCookie;

# クッキー情報の有無を確認
if ($cid eq "" || $cpw eq "") { &cookError("No Cookie"); }

# 時間チェック
if ($time - $ctm > $cgiLimit*3600) { &cookError("Time is Over !"); }

# パスファイルを開く
$f=0;
open(IN,"$cook3_prvdir/$cook3_pwdfile") || &cookError("Open Error: $cook3_pwdfile");
while (<IN>) {
($id,$pw) = split(/:/);
if ($cid eq $id) { $f++; last; }
}
close(IN);
if (!$f) { &cookError("ID not found"); }

# 照合
$pw =~ s/\n//;
$check = &cookDecrypt($cpw, $pw);
if ($check != 1) { &cookError("PASSWORD ERROR"); }

# ログ式
} else {

# ホスト名認識
&cookGetHost;

# ログ
$f=0;
open(IN,"$cook3_prvdir/$cook3_logfile") || &cookError("Open Error: $cook3_logfile");
while (<IN>) {
($id,$date,$hos,$age,$tim) = split(/<>/);

if ($host eq $hos) { $f++; last; }
}
close(IN);

# ホスト情報なし
if (!$f) {
&cookError("Host not found");
# 時間切れ
} elsif ($time - $tim > $cgiLimit*3600) {
&cookError("Time is Over !");
}
}
}

#-------------------------------------------------
# エラー処理
#-------------------------------------------------
sub cookError {
print "Content-type: text/html\n\n";
print <<EOM;
<html>
<head><title>ERROR</title></head>
<body bgcolor="#ffffff">
<div align="center">
<hr width=400>
<h3>$_[0]</h3>
<hr width=400>
</div>
</body>
</html>
EOM
exit;
}

#-------------------------------------------------
# クッキー取得
#-------------------------------------------------
sub cookGetCookie {
local($key, $val, *cook);

# クッキーを取得
$cook = $ENV{'HTTP_COOKIE'};

# 該当IDを取り出す
foreach ( split(/;/, $cook) ) {
($key, $val) = split(/=/);
$key =~ s/\s//g;
$cook{$key} = $val;
}

return ( split(/<>/, $cook{'wprotect'}) );
}

#-------------------------------------------------
# crypt照合
#-------------------------------------------------
sub cookDecrypt {
local($in, $dec) = @_;

local($salt) = $dec =~ /^\$1\$(.*)\$/ && $1 || substr($dec, 0, 2);
if (crypt($in, $salt) eq $dec || crypt($in, '$1$' . $salt) eq $dec) {
return (1);
} else {
return (0);
}
}

#-------------------------------------------------
# ホスト名取得
#-------------------------------------------------
sub cookGetHost {
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};

if ($cgiGethostbyaddr && ($host eq "" || $host eq $addr)) {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2) || $addr;
}
}


1;

---------------------------------------------------


何度もお時間を取っていただきありがとうございます。
よろしくお願いします。


記事No: 3863
投稿日: 2008/06/13(Fri) 19:23:47
タイトルRe^5: 【Web Protect】隠しページにCGIを
ID情報: pachira
投稿者: pachira
URLhttp://www5e.biglobe.ne.jp/~pachira/

> > > > > タイトルのように
> > > > > Web Protectを使って
> > > > > 隠しページにCGIを置きたいと思っています。
> > > > >
> > > > > 設置してチェックを行うと
> > > > >
> > > > > Check Mode
> > > > > 会員ファイルのパスOK!
> > > > > 会員ファイルのパーミッションOK!
> > > > > パスファイルのパスOK!
> > > > > パスファイルのパーミッションOK!
> > > > > 管理ログのパスOK!
> > > > > 管理ログのパーミッションOK!
> > > > > ログファイルのパスOK!
> > > > > ログファイルのパーミッションOK!
> > > > > sendmailパスOK!
> > > > > ロック形式 → symlink
> > > > > ロックディレクトリ → ./lock
> > > > > ロックディレクトリパスOK!
> > > > > ロックディレクトリパーミッションOK!
> > > > > Web Protect v3.2 : Copyright (c) KentWeb
> > > > >
> > > > > という具合にうまくできているようなのですが
> > > > > secret.htmlからcgiに飛ぼうとすると
> > > > >
> > > > > Open Error: .htpasswd
> > > > >
> > > > > と出てしまいます。
> > > > >
> > > > > これは設置がうまくいってないのでしょうか?
> > > > > それともcgiに問題があるんでしょうか?
> > > > > 因みにcgiはパス認証を入れない状態ではうまく設置できています。
> > > > >
> > > > > http://shutobouei.0web.cjb.net/protect/protect.cgi?
> > > > > ID:test
> > > > > PASS:test
> > > > >
> > > > > secret.htmlからのリンクに関しては、試しに
> > > > > 第1ページにサーバパスからのリンク
> > > > > 第2ページにおそらく正しいであろうリンクを置いています。
> > > > >
> > > > >
> > > > > そしてパターン2を用いて設置しています。
> > > > > [パターン2] ウェブ上からアクセスできないディレクトリを作成できないサーバ
> > > > > /home/USER/
> > > > > |
> > > > > +-- public_html /
> > > > > |
> > > > > +-- shoku /
> > > > > | secret.html
> > > > > | file1.html
> > > > > | file2.html
> > > > > | file3.html (何もリンクを張っていません)
> > > > > | .htpasswd [606]
> > > > > | .axslog [606]
> > > > > | .admlog [606]
> > > > > | .member [606]
> > > > > |
> > > > > +-- protect / protect.cgi [705]
> > > > > | admin.cgi [705]
> > > > > | init.cgi [604]
> > > > > | jcode.pl [604]
> > > > > | index.html
> > > > >           |    cook3.cgi [604]
> > > > > |
> > > > > | mulsche.cgi
> > > > > | sample-key.gif
> > > > > | style.css
> > > > > | title.gif
> > > > > | ←本当はここにjcode.plが必要なんですが、上のとかぶるので置いていません。
> > > > > |
> > > > > +-- lock [707] /
> > > > >           |
> > > > >           |
> > > > > +-- data /
> > > > >
> > > > > どなたかよろしくお願いします。
> > > > > 足りない情報があるかもしれませんで、指摘もお願いします。
> > > >
> > > > 以下が一致していないからです。
> > > >
> > > > ■init.cgi
> > > > # 隠しディレクトリ
> > > > # → サーバパスで指定( / から始まるパス )
> > > > $prvdir = '/フルパス/protect';
> > > >
> > > > ■cook3.cgi
> > > > # 隠しディレクトリ
> > > > # → protect.cgiの設定と合わせること
> > > > $cook3_prvdir = '/フルパス/protect';
> > >
> > > pachiraさん
> > > 早速のレスありがとうございます。
> > >
> > > init.cgiとcook3.cgiは以下のように設定しているんですが
> > > いかがなのでしょうか?
> > >
> > > ■init.cgi
> > > #-------------------------------------------------
> > > # ▼設定項目
> > > #-------------------------------------------------
> > >
> > > # パスワード発行形態
> > > # 1 : ユーザからの発行&メンテを可能にする
> > > # 2 : 発行は管理者のみ。ユーザはメンテのみ
> > > # 3 : 発行&メンテは管理者のみ(index.htmlは不要)
> > > $pwd_regist = 2;
> > >
> > > # 隠しディレクトリ
> > > # → サーバパスで指定( / から始まるパス )
> > > $prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';
> > >
> > > # 隠しファイル(トップ)
> > > # → ファイル名のみを記述
> > > $secret[0] = "secret.html";
> > >
> > > # 以下は隠しファイル(次ページ以降分)
> > > # → [1] [2] [3] ... と順に続ける
> > > # → CGIの場合のみ http://から記述すること
> > > $secret[1] = "http://home/0web_cjb_net/zw014119/public_html/protect/mulsche.cgi"; # 隠しファイル1
> > > $secret[2] = "http://shutobouei.0web.cjb.net/protect/mulsche.cgi"; # 隠しファイル2
> > > $secret[3] = "file3.html"; # 隠しファイル3
> > >
> > > # ID/PASS記録ファイル
> > > # → ファイル名のみを記述
> > > $pwdfile = '.htpasswd';
> > >
> > > # アクセス履歴ファイル
> > > # → ファイル名のみを記述
> > > $logfile = '.axslog';
> > > $admfile = '.admlog';
> > >
> > > # 会員ファイル
> > > # → ファイル名のみを記述
> > > $memfile = '.member';
> > >
> > > # タイトル名
> > > $title = "国戦本部 隊員認証";
> > >
> > > # 管理用パスワード(複雑な方がよい)
> > > $pass = '--------';
> > >
> > > # 本体プログラムURL
> > > $script = './protect.cgi';
> > >
> > > # 管理プログラムURL
> > > $admin = './admin.cgi';
> > >
> > > # ロックファイル形式
> > > # → 0=no 1=symlink関数 2=mkdir関数
> > > $lockkey = 1;
> > >
> > > # ロックファイル
> > > $lockfile = './lock/protect.lock';
> > >
> > > # アクセスログ最大保持数
> > > $max = 300;
> > >
> > > # 戻り先URL
> > > $backUrl = 'http://shutobouei.0web.cjb.net/bottom.html';
> > >
> > > # 1ページ当り会員表示件数
> > > $pageView = 50;
> > >
> > > # 管理アドレス
> > > $master = '--------------';
> > >
> > > # sendmailパス
> > > $sendmail = '/usr/lib/sendmail';
> > >
> > > # ユーザ登録アクセス制限(半角スペースで区切る)
> > > # → 拒否するホスト名又はIPアドレスを記述(アスタリスク可)
> > > # → 記述例 $deny = '*.anonymizer.com 211.154.120.*';
> > > $deny = '';
> > >
> > > # bodyタグ
> > > $body = '<body bgcolor="#FFFFFF" text="#000000">';
> > >
> > > # ホスト取得方法
> > > # 0 : gethostbyaddr関数を使わない
> > > # 1 : gethostbyaddr関数を使う
> > > $gethostbyaddr = 0;
> > >
> > > #-------------------------------------------------
> > > # ▲設定完了
> > > #-------------------------------------------------
> > >
> > > ■cook3.cgi
> > > #-------------------------------------------------
> > > # 設定項目
> > > #-------------------------------------------------
> > >
> > > # 隠しディレクトリ
> > > # → protect.cgiの設定と合わせること
> > > $cook3_prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';
> > >
> > > # パスワードファイル
> > > # → ファイル名のみを記述
> > > $cook3_pwdfile = '.htpasswd';
> > >
> > > # アクセス履歴ファイル
> > > # → ファイル名のみを記述
> > > $cook3_logfile = '.axslog';
> > >
> > > # CGIのアクセス制限方式
> > > # 1 : クッキーで認証する
> > > # 2 : アクセスログより認証(ログのホスト名を利用)
> > > $cgiAuth = 1;
> > >
> > > # CGIのアクセス許容時間(単位:時間)
> > > # → 認証入り口での認証後からの時間
> > > $cgiLimit = 3;
> > >
> > > # ホスト取得方法
> > > # 0 : gethostbyaddr関数を使わない
> > > # 1 : gethostbyaddr関数を使う
> > > $cgiGethostbyaddr = 0;
> > >
> > > #-------------------------------------------------
> > > # チェック処理
> > > #-------------------------------------------------
> > >
> > > ご指摘いただいたところも合わせていると思うのですが
> > > どこかおかしいのでしょうか。
> > > よろしくお願いします。
> >
> > http://shutobouei.0web.cjb.net/protect/protect.cgi?mode=check
> > ・パスファイルのパスOK!
> >
> > http://shutobouei.0web.cjb.net/protect/mulsche.cgi ←Open Error: .htpasswd
> >
> > これは、間違いなくcook3.cgiが返しているエラーです。
> > 再度、サーバ側のファイル(cook3.cgi)を見直して下さい。
> >
> > 試しに以下を外せば、エラーが出ない事で確信できると思います。
> > require './cook3.cgi';
> > &cookCheck;
>
> pachiraさん
> 毎度早いお答えありがとうございます。
>
> ご指摘の通り
> require './cook3.cgi';
> &cookCheck;
> を外すとうまく表示されました。
>
> cook3.cgiに関しては
> 余計なところは全く触ってないつもりなんですが
> ご一読の上ご指摘いただけると幸いです。
>
>
> ■cook3.cgi------------------------------------
>
> #┌─────────────────────────────────
> #│ WebProtect用CGI制限モジュール v3.1 (2004/06/16)
> #│ Copyright (c) KentWeb
> #│ webmaster@kent-web.com
> #│ http://www.kent-web.com/
> #└─────────────────────────────────
> # 【留意事項】
> #
> # 1. このモジュールは WebProtect (protect.cgi) でCGIをアクセス制限する
> # ためのものです。
> # 2. このモジュールは、protect.cgi及びアクセス制限するCGIスクリプトと
> # 「必ず」同じディレクトリ内に置いて下さい。
> # 3. アスキーモードでFTP転送し、パーミッションは644に設定します。
> # 4. アクセス制限したいCGIスクリプトで、
> # require './jcode.pl';
> # の下付近に以下の2行を書き加えます。
> # ---------------------
> # require './cook3.cgi';
> # &cookCheck;
> # ---------------------
> # 5. このモジュールを使用したいかなる不利益・損害等に関して、作者は
> # その責は一切負いません。
>
> #-------------------------------------------------
> # 設定項目
> #-------------------------------------------------
>
> # 隠しディレクトリ
> # → protect.cgiの設定と合わせること
> $cook3_prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';
>
> # パスワードファイル
> # → ファイル名のみを記述
> $cook3_pwdfile = '.htpasswd';
>
> # アクセス履歴ファイル
> # → ファイル名のみを記述
> $cook3_logfile = '.axslog';
>
> # CGIのアクセス制限方式
> # 1 : クッキーで認証する
> # 2 : アクセスログより認証(ログのホスト名を利用)
> $cgiAuth = 1;
>
> # CGIのアクセス許容時間(単位:時間)
> # → 認証入り口での認証後からの時間
> $cgiLimit = 3;
>
> # ホスト取得方法
> # 0 : gethostbyaddr関数を使わない
> # 1 : gethostbyaddr関数を使う
> $cgiGethostbyaddr = 0;
>
> #-------------------------------------------------
> # チェック処理
> #-------------------------------------------------
> sub cookCheck {
> local($id,$pw,$check,$f,$date,$hos,$age,$tim);
>
> # タイムゾーン設定
> $ENV{'TZ'} = "JST-9";
> $time = time;
>
> # クッキー式
> if ($cgiAuth == 1) {
>
> # クッキー取得
> local($cid,$cpw,$cck,$ctm) = &cookGetCookie;
>
> # クッキー情報の有無を確認
> if ($cid eq "" || $cpw eq "") { &cookError("No Cookie"); }
>
> # 時間チェック
> if ($time - $ctm > $cgiLimit*3600) { &cookError("Time is Over !"); }
>
> # パスファイルを開く
> $f=0;
> open(IN,"$cook3_prvdir/$cook3_pwdfile") || &cookError("Open Error: $cook3_pwdfile");
> while (<IN>) {
> ($id,$pw) = split(/:/);
> if ($cid eq $id) { $f++; last; }
> }
> close(IN);
> if (!$f) { &cookError("ID not found"); }
>
> # 照合
> $pw =~ s/\n//;
> $check = &cookDecrypt($cpw, $pw);
> if ($check != 1) { &cookError("PASSWORD ERROR"); }
>
> # ログ式
> } else {
>
> # ホスト名認識
> &cookGetHost;
>
> # ログ
> $f=0;
> open(IN,"$cook3_prvdir/$cook3_logfile") || &cookError("Open Error: $cook3_logfile");
> while (<IN>) {
> ($id,$date,$hos,$age,$tim) = split(/<>/);
>
> if ($host eq $hos) { $f++; last; }
> }
> close(IN);
>
> # ホスト情報なし
> if (!$f) {
> &cookError("Host not found");
> # 時間切れ
> } elsif ($time - $tim > $cgiLimit*3600) {
> &cookError("Time is Over !");
> }
> }
> }
>
> #-------------------------------------------------
> # エラー処理
> #-------------------------------------------------
> sub cookError {
> print "Content-type: text/html\n\n";
> print <<EOM;
> <html>
> <head><title>ERROR</title></head>
> <body bgcolor="#ffffff">
> <div align="center">
> <hr width=400>
> <h3>$_[0]</h3>
> <hr width=400>
> </div>
> </body>
> </html>
> EOM
> exit;
> }
>
> #-------------------------------------------------
> # クッキー取得
> #-------------------------------------------------
> sub cookGetCookie {
> local($key, $val, *cook);
>
> # クッキーを取得
> $cook = $ENV{'HTTP_COOKIE'};
>
> # 該当IDを取り出す
> foreach ( split(/;/, $cook) ) {
> ($key, $val) = split(/=/);
> $key =~ s/\s//g;
> $cook{$key} = $val;
> }
>
> return ( split(/<>/, $cook{'wprotect'}) );
> }
>
> #-------------------------------------------------
> # crypt照合
> #-------------------------------------------------
> sub cookDecrypt {
> local($in, $dec) = @_;
>
> local($salt) = $dec =~ /^\$1\$(.*)\$/ && $1 || substr($dec, 0, 2);
> if (crypt($in, $salt) eq $dec || crypt($in, '$1$' . $salt) eq $dec) {
> return (1);
> } else {
> return (0);
> }
> }
>
> #-------------------------------------------------
> # ホスト名取得
> #-------------------------------------------------
> sub cookGetHost {
> $host = $ENV{'REMOTE_HOST'};
> $addr = $ENV{'REMOTE_ADDR'};
>
> if ($cgiGethostbyaddr && ($host eq "" || $host eq $addr)) {
> $host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2) || $addr;
> }
> }
>
>
> 1;
>
> ---------------------------------------------------
>
>
> 何度もお時間を取っていただきありがとうございます。
> よろしくお願いします。

# パスファイルを開く
$f=0;
open(IN,"$cook3_prvdir/$cook3_pwdfile") || &cookError("Open Error: $cook3_pwdfile");

ここ↑に引っかかるわけですから、やはり以下を見直して下さい。としか言えないです。

$cook3_prvdir = '/home/0web_cjb_net/zw014119/public_html/shoku';

FTPクライアントで、必ずサーバにアップされたcook3.cgiを見て下さい。
(ローカルファイルでは意味がありません)

これ以上は、無限ループになるだけです。


[検索ページ]