すみません・・ご無沙汰です・・・
久々に、サイトのメンテナンスというか修復を開始して(苦笑)V3.15にあげたんですが・・・
IP拒否の部分の動作がうまくいっていないような気が
(思い違いなら良いのですが)
precheck_functions.phpで、
$bad_ip_match = Protector::ip_match( $bad_ips ) ;
if( $bad_ip_match ) {
$protector->call_filter( 'precommon_badip' , 'You are registered as BAD_IP by Protector.' ) ;
}
てなロジックになってるので、もしかして、filter_disabled/precommon_badip_message.php
とかをfilter_enabledに移さないといけないようになってません?
nobunobuさん、こんにちは。
Quote:
IP拒否の部分の動作がうまくいっていないような気が
ビクビクしながら確認してみましたが、大丈夫みたいですよ
Protector::call_filter() の第2引数 $dying_message が指定されていて、かつ、該当するフィルターがない(もしくはフィルターで明示的な処理継続指定がされない)場合には、そのメッセージをもってdie()します。
Quote:
ビクビクしながら確認してみましたが、大丈夫みたいですよ
Protector::call_filter() の第2引数 $dying_message が指定されていて、かつ、該当するフィルターがない(もしくはフィルターで明示的な処理継続指定がされない)場合には、そのメッセージをもってdie()します。
早とちりですみませんでしたorz
Filterってことで、Protector::call_filter()という中間のメソッドでなく、class ProtectorFilterHandlerの実装部分だけしか
見ていませんでした。
で、小生環境でIP拒否がうまくいかない原因わかりました。
拒否IPアドレスの記法が古いProtectorと異なっていたのですね。
昔のProtectorはXOOPSのIP拒否をそのまま使っていたと思うので、
111.222.111.xxxなアドレス指定を、^111.222.111 ってな
かたちで、正規表現の中身だけを各方式だったのが、
おそらく、現在のProtectorは独自IP拒否ほうしきをとって、
こちらでは、111.222.111. と書くか、 /^111.222.111/ と
書かないといけなくなっているようですね。
これも、早とちりかも・・・
Quote:
nobunobu wrotes:
拒否IPアドレスの記法が古いProtectorと異なっていたのですね。
昔のProtectorはXOOPSのIP拒否をそのまま使っていたと思うので、
111.222.111.xxxなアドレス指定を、^111.222.111 ってな
かたちで、正規表現の中身だけを各方式だったのが、
おそらく、現在のProtectorは独自IP拒否ほうしきをとって、
こちらでは、111.222.111. と書くか、 /^111.222.111/ と
書かないといけなくなっているようですね。
ああ〜なるほど。
^111.222.111
という表記を使っていた人にとっては、互換性が無くなってしまったわけですね。
互換性と可読性との妥協で、今の複雑な仕様にしたのですが、互換性の方が崩れていたとは…orz