> 2009/08/23 (日) 22:41:21 ◆ ▼ ◇ [qwerty]> > 成功っちゅーか(;´Д`)
> > POSTの時の$hostがqwerty.on.arena.ne.jpで$request_uriが
> > /cgi-bin/bbs.cgiだったら$refererにhttp://qwerty.on.arena.ne.jp/cgi-bin/bbs.cgiを代入して
> > %wrap_proxy_decodeを迂回してReferer: に$refererを出力するだけだよ
> それは設定をいじる範囲内なのか
> それともスクリプト自体をいじる必要があるのか
> どっちだ(;´Д`)
処理ロジックをいじる必要があるよ(;´Д`)こんな感じ(CGIProxy 2.1beta19)
# Create Referer: header if so configured.
# Only include Referer: if we successfully remove $script_url+flags from
# start of referring URL. Note that flags may not always be there.
# If using @PROXY_GROUP, loop through them until one fits. This could
# only be ambiguous if one proxy in @PROXY_GROUP is called through
# another proxy in @PROXY_GROUP, which you really shouldn't do anyway.
if (!$e_hide_referer) {
my($referer)= $ENV{'HTTP_REFERER'} ;
if (@PROXY_GROUP) {
foreach (@PROXY_GROUP) {
print(S 'Referer: ', &wrap_proxy_decode($referer), "\015\012"), last
if $referer=~ s#^$_(/[^/]*/?)?## && ($referer ne '') ;
last if $referer eq '' ;
}
} else {
#QWERTY i-modeリファラチェック対応
my $qwerty_sw = 0;
if( $referer eq ''){
if( $host eq 'qwerty.on.arena.ne.jp'){
if( $request_uri =~ /^\/cgi-bin\/bbs.cgi/){
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
$referer = 'http://qwerty.on.arena.ne.jp/cgi-bin/bbs.cgi';
$qwerty_sw = 1;
}
}
}
}
if( $qwerty_sw == 0){
print S 'Referer: ', &wrap_proxy_decode($referer), "\015\012"
if $referer=~ s#^$THIS_SCRIPT_URL(/[^/]*/?)?## && ($referer ne '') ;
}
else{
print S 'Referer: ', $referer, "\015\012";
}
}
}
参考:2009/08/23(日)22時38分57秒