ひさしぶりにリバースアクセスランキングをチェックしたら
訳の分からんサイト(出会い系とか)のいくつかが異常なスコアを叩き出していました。
一応対策を施しておいたのでその内収まるはず。
▼以下CJ Clubさんからの転載
--------------------------------------------------------------------
JavaScript方式でカウントしている場合は以下のコードを
149行目 foreach $murl (@murl){ の前に記述
if($ENV{'HTTP_REFERER'} !~ /自サイトURL一部/ && !$SSI){
if(-e $l_f){rmdir($l_f);}
if($SSI){&html_($ARGV[1],0);}else{&gif_;}
exit;
}
SSI方式でカウントしている場合は70行目を以下のように変更
if($ARGV[0] eq "s"){if($access){&gif_; exit;}else{$access=$ENV{'HTTP_REFERER'};}}
--------------------------------------------------------------------
▼不正クリック対策
--------------------------------------------------------------------
まず、ip.log などの空ファイルを用意します。で、以下のコードを
157行目あたりの my($ad)=$ENV{'REMOTE_ADDR'}; の下に追加してみてください。
my $ipflag=0; # IPがすでにあるかのフラグ
open(IPI,"ip.log");
while (<IPI>){
if($_ eq $ad){$ipflag=1; last;}#IPがすでにある場合フラグを立てて終わり
}
close(IPI);
if($ipflag){if($SSI){&html_($ARGV[1],0);}else{&gif_;}}#フラグがたっている場合
else{#そうでない場合
if((-M "$tlog") < 1){#更新されてから1日以内ならIP追加
open(IPO,">>ip.log");
print IPO $ad;
close(IPO);
}else{#更新されて1日以上ならログをフォーマットして追加
open(IPO,">ip.log");
print IPO $ad;
close(IPO);
}
}
--------------------------------------------------------------------
▼またコチラのサイトさまの対策も導入
--------------------------------------------------------------------
access.cgiに下記記述を追加すると不正アクセスを大分防げる様です。
(@kyokaの中のURLは変更してくださいね)
*全ランクの「その他、ブックマーク等」からのアクセスはほとんどが不正アクセスです。
*http://~/access.cgi?http://www.yahoo.co.jp/ではカウントされません。
my($ad)=$ENV{'REMOTE_ADDR'};
if($access){
open(DB,"$ulog") || &er_("Can't open $ulog","1","404");
while ($urls=<DB>){
chomp($urls);
($u,$n,$tu) = split(/;/,$urls);
$u=~ tr/+/ /;
$u=~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
if($access=~ /$u/i){$access="$tu"; last;}
}
close(DB);
#_________ 簡易不正対策 ここから追加
@kyoka = ("http://www.11pm.jp/app/","http://www.11pm.jp/app/index.shtml");
$fusei = "1";
foreach (@kyoka){
if($_ eq $ENV{'HTTP_REFERER'}){
$fusei = "0";
}
}
if($fusei){$access="";}
#_________ 簡易不正対策 ここまで追加
}
foreach $b (@b) {
($count,$url,$Ip,$r)=split(/<>/,$b);
if($access eq "$url"){
if($IPC && $Ip eq $ad){$flag=2; last;}
$flag=1; $count++;
$b ="$count<>$access<>$ad<>$r<>";
$b =~ s/\r\n|\r|\n//g;
$b.="\n";
}
--------------------------------------------------------------------
一応それぞれのサイトさまから直接コピペする事をおすすめします。
(転載に失敗している可能性があるので)
あと、dat、logファイルのパーミッションを600にしておきました。
何が良かったのかは分かりませんが、現在の所完璧に防げています。ヽ(´▽`)ノ
やっぱりランキングやBBS等、カキコミや登録が出来るスクリプトの類は
しっかりメンテナンスしないとスパム業者に荒らされてダメですね~。
最近のコメント