Configuration Error 現象報告スレ
■ このスレッドは過去ログ倉庫に格納されています
>Configuration Error >The server encountered an error while processing your request. >Please contact the administrator of the referring document and inform them >of the time the error occurred, and anything you might have done that may have >caused the error. このエラーが出る人は以下の事をお知らせ下さい。 ・現象が起こった板 ・使用しているブラウザ ・プロバイダ sub KarimeloEnd { DispError("ERROR!","ERROR:あーあ。"); } #refererチェック #if($ENV{'HTTP_VIA'} ne "" || $ENV{'HTTP_X_FORWARDED_FOR'} ne "" || $ENV{'HTTP_FORWARDED'} ne ""){ unless($FORM{'submit'} eq "かきこむ" && $ENV{'HTTP_USER_AGENT'} !~ /Mozilla/i){ if($ENV{'HTTP_USER_AGENT'} =~ /DoCoMo/i || $ENV{'HTTP_USER_AGENT'} =~ /J-PHONE/i || $ENV{'HTTP_USER_AGENT'} =~ /UP.Browser/i || $ENV{'HTTP_USER_AGENT'} =~ /DDIPOCKET/i){# 携帯からの書きこみフォロー(時限的処置) if(IsIP4Mobile) { $FLAG = 1 if(!$FLAG); $SETTING{'SUBBBS_CGI_ON'} = 0; $SETTING{'BBS_PROXY_CHECK'} = ""; $SETTING{'BBS_RAWIP_CHECK'} = ""; $SETTING{'BBS_OVERSEA_PROXY'} = ""; } else { DispError("ERROR!","ERROR:ブラウザ変ですよん。$ENV{'HTTP_REFERER'}"); } }elsif (!$FLAG){ if($ENV{'HTTP_REFERER'} !~ /^http:\/\/$ENV{'HTTP_HOST'}/){ DispError("ERROR!","ERROR:ブラウザ変ですよん。(referer1)$ENV{'HTTP_REFERER'}"); } if($ENV{'HTTP_HOST'} ne $ENV{'SERVER_NAME'}){ DispError("ERROR!","ERROR:ブラウザ変ですよん(host)。 $ENV{'HTTP_REFERER'}"); } } #ゲロトラップ防止ここから↓ sub GeroTrap { # 携帯はするー #★はスルー #●はスルー unless( $ENV{'HTTP_REFERER'} eq '' || $ENV{'HTTP_REFERER'} =~/^http:\/\/[a-zA-Z0-9]+\.2ch\.net/ || $ENV{'HTTP_REFERER'} =~/^http:\/\/[a-zA-Z0-9]+\.bbspink\.com/ ) { DispError("ERROR!","あなた騙されてますよ?"); } if($ENV{'HTTP_REFERER'} eq ''){DispError("ERROR!","リファラぐらい送ってください");} return 0; } #↑ここまで というかRefererを調べてる場所がどうしてこんな何ヵ所もあるねん 不要なものを外したら直ったりしませんか 何箇所もあるのはリファラに限った事ではなかったり・・・。 Configuration Errorが出るのはHTTPヘッダを吐く前に DispErrorしてるからだと妄想 >>45-48 が実際のチェックと同じ順番に並んでると仮定すると まずKarimeloEndのReferer関係を外してみては sub DispError{ my $title=@_[0]; my $topic=@_[1]; print "Content-type: text/html; charset=shift_jis\n\n"; #----------------------------------------------------------------------- print <<EOF; <html><head><title>$title</title><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"></head><body bgcolor="#FFFFFF"><!-- 2ch_X:error --> <font size=+1 color=#FF0000><b>$topic</b></font><ul><br>ホスト<b>$HOST</B><br><b>$FORM{'subject'} </b><br>名前: $FORM{'FROM'}<br>E-mail: $FORM{'mail'}<br>内容:<br>$FORM{'MESSAGE'}<br><br></ul><center>こちらでリロードしてください。<a href="../$FORM{'bbs'}/index.html"> GO! </a><br>分からないことがあったら<a href="http://info.2ch.net/guide/ ">2ちゃんねるガイド</a>へ。。。<br><br> アクセス規制・プロキシー制限等規制は、<a href="http://2ch.tora3.net/ ">2ちゃんねるビューア</a>を使うと回避できることがあります。</body></html> EOF #----------------------------------------------------------------------- exit; } うむむ。DispError内でヘッダは吐いてるのか うわ、他スレでまたConfiguration Errorが出てあせった。 リロードして書き込んだら受け入れてもらえました。 しかし自分のパソでは何度リロードしてもだめでした。 いい加減消えます。ハァ… だいたいヘッダがない場合は Configuration Error じゃなくて Internal Server Error にならんか? heがエラーをカスタマイズしていて500のエラーメッセージが Configuration Errorと表示されるんですよ リファラでエラーを吐くべきときに吐いてない→その後に不正なリファラを利用しようとして死ぬ と予想してみる。 >>47 の時点で$FLAGがすでにtrueだとか。 >>61 それでも configration error になる? うぅ、さっぱり分からない……。 さらされたコードには死ぬ要因が見当たらないんだよな〜。 なんだよなぁ。。。 referer 関係じゃないのかなぁ QxGykWR6 not running under mod_perl.ひみつ DOCUMENT_ROOT = /home/ch2qb3/public_html GATEWAY_INTERFACE = CGI/1.1 HTTP_ACCEPT = */* HTTP_ACCEPT_ENCODING = gzip, deflate HTTP_ACCEPT_LANGUAGE = ja HTTP_CACHE_CONTROL = max-age=259200 HTTP_CLIENT_IP = ひみつ HTTP_CONNECTION = keep-alive HTTP_COOKIE = ひみつ HTTP_HOST = qb3.2ch.net HTTP_REFERER = http://www.dd.iij4u.or.jp/ ~cap/iyan.html HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) HTTP_VIA = ひみつ PATH = /usr/local/bin:/usr/local/bin:/usr/bin:/bin QUERY_STRING = REMOTE_ADDR = ひみつ REMOTE_PORT = 14267 REQUEST_METHOD = GET REQUEST_URI = /test/check.cgi SCRIPT_FILENAME = /home/ch2qb3/public_html/test/check.cgi SCRIPT_NAME = /test/check.cgi SERVER_ADDR = 65.19.141.138 SERVER_ADMIN = 2ch@2ch.net SERVER_NAME = qb3.2ch.net SERVER_PORT = 80 SERVER_PROTOCOL = HTTP/1.0 SERVER_SOFTWARE = Apache/2.0.48 UNIQUE_ID = xFAMt0ETjYoAABNrJNIAAABO これでConfiguration Errorが出ることを確認。リファラが引き金になっているのは間違いないようです。 下記気になります。 UP.Browser ↓ UP\.Browser if(IsIP4Mobile) { <変数?? } <一個足りない my $title=@_[0]; my $topic=@_[1]; ↓ 正確には正しくないはず。 my ($title, $topic) = @_; my $title=@_[0]; my $topic=@_[1]; これは問題なかろいよ。 IsIP4Mobile は各携帯会社の IP アドレス帯かどうかのチェック結果 { } の対応は合ってると思うが (てか合ってなかったら動かんし) >>78 >>47 の処理をばっさり削ったものを qb3 に入れた。 ちなみにUP\.BrowserでなくてUP.Browserなのは、 そっちでもUP\.Browserにかかるからだと思う。 >>75 FOXさん、 POST /test/bbs.cgi HTTP/1.0 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Host: qb3.2ch.net Connection: close Cookie: PON=acchba******.adsl.ppp.infoweb.ne.jp; Referer: http://qb33.2ch.net/ Content-Type: application/x-www-form-urlencoded Content-Length: 388 でダメです。 ちなみに●ログイン状態で$FLAGはtrueになっているはずです。 Referer: http://qb33.2ch.net/ を Referer: http://qb3.2ch.net/ にすると書込み成功です。 この部分に何やら蠢くものがいると言う事か? if($ENV{'HTTP_USER_AGENT'} =~ /DoCoMo/i || $ENV{'HTTP_USER_AGENT'} =~ /J-PHONE/i || $ENV{'HTTP_USER_AGENT'} =~ /UP.Browser/i || $ENV{'HTTP_USER_AGENT'} =~ /DDIPOCKET/i) {# 携帯からの書きこみフォロー(時限的処置) if(&IsIP4Mobile) { $FLAG = 1 if(!$FLAG); $SETTING{'SUBBBS_CGI_ON'} = 0; $SETTING{'BBS_PROXY_CHECK'} = ""; $SETTING{'BBS_RAWIP_CHECK'} = ""; $SETTING{'BBS_OVERSEA_PROXY'} = ""; } else { DispError("ERROR!","ERROR:ブラウザ変ですよん。$ENV{'HTTP_REFERER'}"); } } elsif (!$FLAG) { if($ENV{'HTTP_REFERER'} !~ /^http:\/\/$ENV{'HTTP_HOST'}/) { DispError("ERROR!","ERROR:ブラウザ変ですよん。(referer1)$ENV{'HTTP_REFERER'}"); } if($ENV{'HTTP_HOST'} ne $ENV{'SERVER_NAME'}) { DispError("ERROR!","ERROR:ブラウザ変ですよん(host)。 $ENV{'HTTP_REFERER'}"); } } } >>47 の unless($FORM{'submit'} eq "かきこむ" && $ENV{'HTTP_USER_AGENT'} !~ /Mozilla/i){ に引っかからないように、 submit=かきこむ && UA=monazilla でPOSTしたところ、やはり Referer: http://qb33.2ch.net/ で× Referer: http://qb3.2ch.net/ で○ みたいです… if($ENV{'HTTP_REFERER'} !~ /^http:\/\/$ENV{'HTTP_HOST'}/) かな? >>85 の部分までたどり着いてないなら>>82 でも書き込みに失敗するんでは? >>90 さん、 ですよね。 bbs.cgi中の順番は、 >>45 、>>46 、$FLAG判定、>>47 、>>48 という感じです。 リファとかUAに不正な文字列入ってた場合は、正規表現でこける可能性はありそうですね。 quotemeta $UA; なんかいいかもしれないですね。 ごめんなさい、>>82 >>91 を取り下げます。正しいリファラを吐いていたみたい……。 あれ? Referer: http://qb312ch.net/ でいける模様。 やはり正規表現部っぽいですね。 >>95 クオートしないとマッチが甘いようですね。 でも「マッチしないときに死ぬ」のはおかしいような……。 >>96 さん、 うーん、、、 $ENV{HTTP_REFERER}を使った規制部分を全てコメントアウトして、 一つずつ復活させて様子を見ていくっていうのはどうでしょう? FOXさんにお願いできるのなら、(金)あたりででも。 if($ENV{'HTTP_REFERER'} !~ /^http:\/\/$ENV{'HTTP_HOST'}/) これか? ええと、 ・●でも死ぬ ・リファラが「http://qb312ch.net 」でも通る ということは、 ●でもスルーされない部分で「$ENV{'HTTP_REFERER'}=~/^http:\/\/$ENV{'HTTP_HOST'}/」とか やっているあたり(つまりここでさらされなかった部分)が怪しい といったところでしょうか? $ENV{'HTTP_REFERER'} が入っているのは全部だしたのだ。 >>100 他にはないと思うなぁ。。。 >>98 まとめますと、 1.原因不明でConfig Err 2.このスレでrefererが怪しいと判明 3.正式なrefererならば書込み可、不正なrefererではやはりConfig Err *もともと正式なreferer以外は●、★、携帯等以外は書込みできない。 *つまり現状で問題点があるとしたら、●、★でrefererが不正な場合書込みできない点。 ということは、このままでも良いのでしょうか? >>102 .htaccessでrewrite rule等が悪さしている可能性ありますか? いま .htaccess で何も規制していないはずなんだけど、、 .htaccessのごみが500エラーの原因になることはよくありますよん。 qb3 /.htaccess ErrorDocument 404 http://game3.2ch.net/live.html ErrorDocument 403 http://server.maido3.com/ Options ExecCGI Indexes FollowSymLinks Includes /test/.htaccess Options ExecCGI Includes AddHandler cgi-script .i /operate/.htaccess なし bbs.cgiの仕様が異なるlive5ですと、 POST /test/bbs.cgi HTTP/1.0 User-Agent: Monazilla/1.0 (classic/0.3) Host: live5.2ch.net Connection: close Cookie: PON=acchba******.adsl.ppp.infoweb.ne.jp; Referer: http://live55.2ch.net Content-Type: application/x-www-form-urlencoded Content-Length: 393 で正常に書き込めるようです。 カリメロ対策はずしてみた @ qb3 #################################### #カリメロ対策 if($ENV{HTTP_REFERER} =~ /\.jpg/i){&KarimeloEnd;} if($FORM{'saba'} ne ''){&KarimeloEnd;} if($FORM{'duke'} ne ''){&KarimeloEnd;} if($ENV{'HTTP_REFERER'} =~ /duke\=/i){&KarimeloEnd;} if($ENV{'HTTP_REFERER'} =~ /saba\=/i){&KarimeloEnd;} #################################### あと ちょっとでも referer が関係しているところはどこかなぁ ちなみに cookie がらみって事はないかな? そういえば最近頻繁に「ユーザー設定が〜」がでますね。関係あるかな? Cookie: あり Referer: http://qb33.2ch.net/ で× Referer: http://qb3.2ch.net/ で○ Cookie: なし Referer: http://qb33.2ch.net/ で× Referer: http://qb3.2ch.net/ で○ 他にCookieでテストする要素ってありますか? やっぱりrefererに依存するみたいです… uma以前の比較的古いサーバでtestしてきます。 へんだなぁ。。。 金のやつを入れてみます。 @qb3 運用情報(金) bbs.cgiのテスト板 のことでした。 >>130 >>131 やっぱりダメみたいです。 どうやらサーバにも依存するみたいですね、、、 きょうの所はここまでだなぁ いろいろ考えてよう > all はい〜 >>133 さんも、FOXさんもお疲れ様でした。 #$ENV{HTTP_REFERER}(欲を言えば環境変数全体)を表示するcgiが欲しいかも #(エラーの出るサーバと出ないサーバそれぞれに) 遅れてスイマセン みなさいいのいってるような難しいことよくわからないんですがとりあえずどうした ら書き込めるようになるのでしょうか? それともそんな簡単に直るものではないんでしょうか 漠然とした質問で申し訳ありません if ($ENV{'HTTP_REFERER'} !~ /^http:\/\/$ENV{'HTTP_HOST'}/) を if ($ENV{'HTTP_REFERER'} !~ m<^http:// \Q$ENV{HTTP_HOST}\E>) にしてみる。(1バイト増加) >>138 その変える部分ってどこにあるんですか? >>137 refererを吐くのが普通の環境なので、 それを吐かないってことは特殊な環境なんだと思います。 たとえばノートンを使ってたりしてませんか? >>140 リファラをはかないっていうのは>>16 を開いた時リファラが出ないってことですよね? ノートンは使っていますがいつも書き込む時はきっています。 >>141 そういうことになります。 それでノートンを切った状態でこのスレをIEで開いて >>16 を開いたらrefererが出るはずなのですがどうでしょうか? >>142 ホントスイマセン!! 自分でなんとか解決できました 今まで最近メモリが足りなくてパソ起動してすぐプログラムの強制終了でノートンを消していたのですが ノートンを正規の方法で解除したら書き込めました まだリファラはでないままですが・・ >>144 ありがとうざいます そのほうが楽ですね ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる