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


記事No: 10951
投稿日: 2012/09/16(Sun) 00:08:44
タイトルロリポップでのBASIC認証
ID情報: pyoo1213
投稿者: ゆう
URLhttp://irisdesign.biz/pass/member

いつも大変お世話になっております。
サーバーをロリポップに変更後もKENT-WEB様の
basicを引き続き利用させて頂こうと思っているのですが
サーバを変更したら認証ができなくなってしまいました。

2週間悩んでいたのですが、やむを得ずここで質問させて
頂くことをお許しください。
当方、CGIに関しては初心所です。

パス構成は パターン2を利用
念の為、iniファイルを添付しておきます。
パスはフルパスチェッカーで確認しましたので問題は無いと思います。
ご教授頂ければ幸いです。
何卒、よろしくお願いいたします。


http://workin.biz/pass/pwmgr/admin.cgi
0123で入室可能です。



/home/USER/
|
+-- public_html |
+-- pwmgr / pwmgr.cgi [705]
| | admin.cgi [705]
| | pwlog.cgi [705]
| | init.cgi [604]
| | check.cgi [705]
| | index.html
| | member_dat.cgi [606]
| | pwlog_dat.cgi [606]
| | .htpasswd [606]
| |
| +-- lib / Jcode.pm
| | |
| | +-- Jcode / *.pm
| |
| +-- tmpl / *.html
|
+-- member

.htaccess










# モジュール宣言/変数初期化
use strict;
my %cf;
#┌─────────────────────────────────
#│ PasswordManager : init.cgi - 2011/09/29
#│ Copyright (c) KentWeb
#│ http://www.kent-web.com/
#└─────────────────────────────────
$cf{version} = 'PasswordManager v3.31';
#┌─────────────────────────────────
#│ [注意事項]
#│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した
#│ いかなる損害に対して作者は一切の責任を負いません。
#│ 2. 設置に関する質問はサポート掲示板にお願いいたします。
#│ 直接メールによる質問は一切お受けいたしておりません。
#└─────────────────────────────────

#===========================================================
# ■ 基本設定
#===========================================================

# 管理用パスワード
$cf{password} = '0123';

# 管理アドレス
$cf{master} = 'xxx@xxx.xxx';

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

# パスワードファイル【サーバパス】
# → 正確にフルパスを記述すること
$cf{pwdfile} = '/home/users/1/main.jp-workin/web/pass/pwmgr/.htpasswd';

# 会員ファイル【サーバパス】
# → 正確にフルパスを記述すること
$cf{memfile} = '/home/users/1/main.jp-workin/web/pass/pwmgr/member.dat';

# アクセスログファイル【サーバパス】
# → 正確にフルパスを記述すること
$cf{axsfile} = '/home/users/1/main.jp-workin/web/pass/pwmgr/pwlog.dat';

# アクセスログの最大数
$cf{log_max} = 300;

# 本体プログラムURL【URLパス】
$cf{pwmgr_cgi} = './pwmgr.cgi';

# 管理プログラムURL【URLパス】
$cf{admin_cgi} = './admin.cgi';

# テンプレートディレクトリ【サーバパス】
$cf{tmpldir} = '/home/users/1/main.jp-workin/web/pass/pwmgr/tmpl';

# 戻り先URL【URLパス】
$cf{back_url} = '/home/users/1/main.jp-workin/web/pass/pwmgr/index.html';

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

# sendmailパス【サーバパス】
$cf{sendmail} = '/usr/sbin/sendmail';

# sendmailの -fコマンドが必要な場合
# 0=no 1=yes
$cf{sendm_f} = 0;

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

# 1回当りの最大投稿サイズ (bytes)
$cf{maxdata} = 51200;

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

#===========================================================
# ■ 設定完了
#===========================================================

# 設定値を返す
sub init {
return %cf;
}

#-----------------------------------------------------------
# フォームデコード
#-----------------------------------------------------------
sub parse_form {
my ($buf,%in);
if ($ENV{REQUEST_METHOD} eq "POST") {
&error('受理できません') if ($ENV{CONTENT_LENGTH} > $cf{maxdata});
read(STDIN, $buf, $ENV{CONTENT_LENGTH});
} else {
$buf = $ENV{QUERY_STRING};
}
foreach ( split(/&/, $buf) ) {
my ($key,$val) = split(/=/);
$key =~ tr/+/ /;
$key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;
$val =~ tr/+/ /;
$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;

# 無効化
$key =~ s/[<>"'&\r\n]//g;
$val =~ s/&/&amp;/g;
$val =~ s/</&lt;/g;
$val =~ s/>/&gt;/g;
$val =~ s/"/&quot;/g;
$val =~ s/'/&#39;/g;
$val =~ s/\r\n/<br>/g;
$val =~ s/\n/<br>/g;
$val =~ s/\r/<br>/g;

$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;
}
return %in;
}

#-----------------------------------------------------------
# crypt暗号
#-----------------------------------------------------------
sub encrypt {
my $in = shift;

my @wd = ('a'..'z', 'A'..'Z', '0'..'9', '.', '/');
srand;
my $salt = $wd[int(rand(@wd))] . $wd[int(rand(@wd))];
crypt($in, $salt) || crypt ($in, '$1$' . $salt);
}

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

my $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 get_time {
# タイムゾーン設定
$ENV{TZ} = "JST-9";

my ($min,$hour,$mday,$mon,$year) = (localtime(time))[1..5];
sprintf("%04d/%02d/%02d-%02d:%02d",$year+1900,$mon+1,$mday,$hour,$min);
}


1;


記事No: 10956
投稿日: 2012/09/16(Sun) 19:33:31
タイトルRe: ロリポップでのBASIC認証
ID情報: kent
投稿者: KENT

> いつも大変お世話になっております。
> サーバーをロリポップに変更後もKENT-WEB様の
> basicを引き続き利用させて頂こうと思っているのですが
> サーバを変更したら認証ができなくなってしまいました。

2つの原因が考えられますね。
(1).htaccessに書くフルパスが間違っている
フルパスをよく確認してください。

(2)crypt関数の暗号化形式が新旧サーヴァで異なっている
これは対策は不可。いったんデータをクリアする他ありません。

ちなみに、新サーバ側で新規に登録したデータは、うまく認証できますか?


記事No: 10960
投稿日: 2012/09/17(Mon) 14:15:28
タイトルRe^2: ロリポップでのBASIC認証
ID情報: pyoo1213
投稿者: ゆう
URLhttp://irisdesign.biz/pass/member

ご連絡ありがとうございます。

(1)KENT様のフルパスチェッカーを利用させて頂きましたので
問題はないと思いますが、再度確認をしてみます。

(2)旧サーバ(x-bit)から新サーバ(ロリポップ)に
サーバーを変更した際、フルパスのみ変更して利用が出来ると思いました。

>crypt関数の暗号化形式が新旧サーヴァで異なっている

上記でお伝えしている事は今のフォルダは廃棄し、新たにフォルダを設定して再作成しなくてはいけないと言うことでしょうか。

> ちなみに、新サーバ側で新規に登録したデータは、うまく認証できますか?

登録は出来ますが、認証は出来ません。

お手数をおかけ致しますが、何卒、よろしくお願いいたします。


> 2つの原因が考えられますね。
> (1).htaccessに書くフルパスが間違っている
> フルパスをよく確認してください。
>
> (2)crypt関数の暗号化形式が新旧サーヴァで異なっている
> これは対策は不可。いったんデータをクリアする他ありません。
>
> ちなみに、新サーバ側で新規に登録したデータは、うまく認証できますか?


記事No: 10961
投稿日: 2012/09/17(Mon) 15:12:57
タイトルRe^3: ロリポップでのBASIC認証
ID情報: kent
投稿者: KENT

> ご連絡ありがとうございます。
>
> (1)KENT様のフルパスチェッカーを利用させて頂きましたので
> 問題はないと思いますが、再度確認をしてみます。
>
> (2)旧サーバ(x-bit)から新サーバ(ロリポップ)に
> サーバーを変更した際、フルパスのみ変更して利用が出来ると思いました。
>
> >crypt関数の暗号化形式が新旧サーヴァで異なっている
>
> 上記でお伝えしている事は今のフォルダは廃棄し、新たにフォルダを設定して再作成しなくてはいけないと言うことでしょうか。
>
> > ちなみに、新サーバ側で新規に登録したデータは、うまく認証できますか?
>
> 登録は出来ますが、認証は出来ません。

ということは、多分フルパスが間違っているか、.htpasswdのパーミッションが不正などが考えられると思います。
新規登録が、まずは認証されるように調整してください。それが大切です。(データ移行以前の問題です)


[検索ページ] [掲示板]