【荒らしお断り】 BBQを組み込んでる人【システム】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/01/19(木) 05:07:16ID:bDHDmwK4BBQ
http://bbq.uso800.net/
組み込み例
#################################################################################################
#
#################################################################################################
sub checkProxyList
{
my $RADDR = $ENV{'REMOTE_ADDR'};
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.niku.2ch.net";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
if ($addr eq '127.0.0.2')
{
DispError("ERROR!","公開PROXYからの投稿は受け付けていません!!(1)");
}
return 0;
}
#################################################################################################
#
#################################################################################################
0272nobodyさん
2007/05/06(日) 01:20:17ID:aCOtAwb2ブログにローカルからコメントができなくなったんだが、
192.168.x.xってアドレスはスパムになりえるの?
0273nobodyさん
2007/05/06(日) 05:37:15ID:???0274nobodyさん
2007/05/06(日) 06:06:53ID:???だから焼かれてるのはローカルじゃない。
0275nobodyさん
2007/05/06(日) 06:24:12ID:???>>272は自分が使うIPだか /^192\.168\./ だかのときは
チェックしないようにすればいいよ。
>>274
1.1.168.192.niku.2ch.net も当たりくじ。
0277nobodyさん
2007/05/06(日) 10:08:15ID:aCOtAwb2いや、グローバルIPとして、192.168.x.xは使え得るのかが気になった。
>>273,275
おーけーありがと。
このIPだけ許可してみる。
172.16-32.
127.0.0.1
192.168.
をBBQから外しておきました。
0279nobodyさん
2007/05/06(日) 20:30:47ID:???0280nobodyさん
2007/05/07(月) 08:46:37ID:pSyEyNJX0281nobodyさん
2007/05/09(水) 22:37:09ID:???外から>>278のアドレスで接続してくるかもしれない。
んだけど、グローバルIPを割り当ててあるIFに対しては
ローカルIPアドレスからの送受信は行わないようにFWで
蹴落としているのが普通だよね。
0282nobodyさん
2007/05/19(土) 11:35:44ID:E3N4QZpK0284nobodyさん
2007/05/26(土) 06:51:12ID:???0285nobodyさん
2007/05/26(土) 08:46:06ID:???0286nobodyさん
2007/07/30(月) 17:34:21ID:???0287nobodyさん
2007/08/01(水) 21:04:04ID:TeJyBmiaage
0288nobodyさん
2007/08/02(木) 06:57:14ID:???if($ENV{REQUEST_METHOD} eq "POST") {
...
}
として、POSTの場合のみ拒否するようにしておけば、それなりに実用かもしれない。
ちなみに、DNSの情報はキャッシュされるので、>>269 のようなことはない。
(直接利用されるDNSサーバには負荷がかかるが。)
ちょっとBBQとは違う話になるが、IPアドレス割り当てを参照してJP以外を弾くのも場合によっては悪くないかも。
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
0290nobodyさん
2007/08/16(木) 19:48:20ID:???0291nobodyさん
2007/08/16(木) 22:25:25ID:???コメントなどBBSへの書き込みはそれでいけるかもしれんが、
トラックバックなど鯖から飛ばす分は、海外設置鯖も多いので
それを排除してしまっていいのかどうか...
>>290
俺はkrfilter(iptables)を入れてて気にならないけど、
スクリプトだと厳しいかもね。
0293nobodyさん
2007/09/05(水) 04:25:28ID:wStA3WBxniku.2ch.netってサーバがないみたい・・・
0295nobodyさん
2007/09/05(水) 17:38:40ID:zWiWFNtXそのままぶち込んでも動かないと思っていましたが、
上の方で場所にもよるみたいな書き込みがなされていましたね。
読んでいなくてすみません、ありがとうございます。読み直してきます。
0296nobodyさん
2007/10/20(土) 22:37:24ID:???0297nobodyさん
2007/10/21(日) 08:34:13ID:CCcG4T780298nobodyさん
2007/10/30(火) 04:49:54ID:NYw2ypUi0299nobodyさん
2007/11/26(月) 22:19:00ID:???0300nobodyさん
2008/01/22(火) 10:47:36ID:???ほかにも何かいろいろやってるんですか?
2chよりもプロキシ対策が強いみたいですが
また弊害とかありますか
0301nobodyさん
2008/02/11(月) 22:45:32ID:???あと、掲示板の場合bbs.cgiのような所に入れた方が良いんでしょうか?
0303nobodyさん
2008/02/12(火) 16:10:28ID:???そのまま組み込んでも何も意味無い。
ってかその掲示板によって色々と変更箇所があるし・・・。
とりあえず初めから読めば有力情報があるはず。
0307nobodyさん
2008/02/22(金) 12:20:11ID:???串使ってくる奴って大体ろくな理由じゃない奴が殆どだからな
0308nobodyさん
2008/02/28(木) 08:09:46ID:???0309nobodyさん
2008/02/28(木) 09:10:00ID:???% host -t a 125.48.89.70.niku.2ch.net.
125.48.89.70.niku.2ch.net has address 127.0.0.2
0310石に口漱ぐ ◆WjL.VV.3P6
2008/03/11(火) 10:33:46ID:GflTN1Czこれであってますか?
また、ふつうの携帯が弾かれるとか、fusianasanしてないホストが弾かれるとか、
思わぬデメリットはありますか?
#-------------------------------------------------
# DSBLシステム (公開Proxy排除機能)
#-------------------------------------------------
sub checkProxyList2 {
my $RADDR = $ENV{'REMOTE_ADDR'};
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.list.dsbl.org";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
if ($addr eq '127.0.0.2') { &error("公開Proxyからの投稿は許可されていません"); }
}
#-------------------------------------------------
# DNSBLシステム (公開Proxy排除機能)
#-------------------------------------------------
sub checkProxyList3 {
my $RADDR = $ENV{'REMOTE_ADDR'};
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.http.dnsbl.sorbs.net";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
if ($addr eq '127.0.0.2') { &error("公開Proxyからの投稿は許可されていません"); }
}
--------------書き込み処理に追加----------------
# DSBLとDNSBL
&checkProxyList2;
&checkProxyList3;
0311nobodyさん
2008/03/11(火) 14:09:24ID:???my $server = shift;
my $RADDR = $ENV{'REMOTE_ADDR'};
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.$server";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
if ($addr =~ /^127\.0\.0\./) { &error("公開Proxyからの投稿は許可されていません"); }
}
ってやれば
&checkProxyList("list.dsbl.org");
&checkProxyList("http.dnsbl.sorbs.net");
と関数1個で済む。あと利用するモノによっては127.0.0.2じゃないのも
返す場合があったと思うので、その点もいじっておいた。
DNSBLの類も万能じゃないので、誤爆とかはありうる。
0312nobodyさん
2008/03/11(火) 14:29:18ID:???俺は>>310じゃないけど
&checkProxyList("niku.2ch.net");
ってやればBBQにもなるって事でおk?
っつかBBQとDSBL、DNSBLって使い分けとかした方がいいの?
よく3つの違いが分からねえ
0313石に口漱ぐ ◆WjL.VV.3P6
2008/03/11(火) 14:52:09ID:GflTN1Czありがとうございます。
早速書き換えました。
上記の関数に
# BBQ DSBL DNSBL BBX
&checkProxyList("list.dsbl.org");
&checkProxyList("http.dnsbl.sorbs.net");
&checkProxyList("bbx.2ch.net");
&checkProxyList("niku.2ch.net");
で対応してみました。
0314nobodyさん
2008/03/11(火) 15:01:31ID:???上半分は当たり。>>313見りゃわかるか。
使い分け、ねぇ。
何をやらかせばそれぞれのリストに入るのかを調べればいいんじゃないかな?
BBQの場合は「逆引き未設定なだけです」がリスト内にいたりする。
0315nobodyさん
2008/03/11(火) 15:14:54ID:???ふむ。
調べてみたけどDSBLとBBQは同じものと考えちゃっていいんだ。
BBXは業者系のリストでDNSBLがスパム系のリストでおk?
如何せん量が甚大なんで、BBQでは鮮度が落ちてしまいます。
そして、DSBLのそのほとんどが腐乱しているっていうのも現実だったり(哀)
0317nobodyさん
2008/05/25(日) 17:41:31ID:???0319nobodyさん
2008/08/02(土) 14:04:28ID:MNhtkvFB0321nobodyさん
2008/08/02(土) 20:30:47ID:???0322nobodyさん
2008/08/05(火) 10:52:31ID:???0323nobodyさん
2008/08/05(火) 19:50:09ID:???「Proxy用PORTが開いているホストからの投稿禁止」にチェック入れちゃうと投稿者が自宅WWWサーバ動かしてたりした時に書きこめないから注意な。
ProxyまわりはBBQだけで通常は十分。
0325nobodyさん
2008/09/09(火) 16:26:08ID:SVwRhwYM0327nobodyさん
2008/09/09(火) 19:46:02ID:???0329nobodyさん
2008/09/09(火) 21:40:48ID:???function checkProxyList()
{
$raddr = explode(".", $_SERVER['REMOTE_ADDR']);
$query_addr = "$raddr[3].$raddr[2].$raddr[1].$raddr[0].niku.2ch.net";
if (gethostbyname($query_addr) == '127.0.0.2')
return 0;
}
?>
index.htmlをindex.phpにして一番上にこれ入れてみたけど串でアクセスしても素通りしてしまうなあ
cgi版はちゃんと弾かれたんだが
0330nobodyさん
2008/09/10(水) 07:30:22ID:???そういう使い方をしたいのなら、
<?php
$raddr = explode(".", $_SERVER['REMOTE_ADDR']);
$query_addr = "$raddr[3].$raddr[2].$raddr[1].$raddr[0].niku.2ch.net";
if (gethostbyname($query_addr) == '127.0.0.2')
{
header('HTTP/1.0 403 Forbidden');
echo "こっちくんなー";
exit;
}
?>
0331nobodyさん
2008/09/10(水) 10:48:43ID:???0332nobodyさん
2008/10/28(火) 15:48:15ID:???http://bb.watch.impress.co.jp/cda/news/23637.html
0333nobodyさん
2008/10/28(火) 19:50:49ID:???面白そうだね。
とりあえずうちの掲示板のspamよけルーチンに、BBQより優先度高くして追加。
しばらく様子見だな。
0334nobodyさん
2008/10/29(水) 01:19:05ID:???//$CHECK_IP = "192.0.2.1"; // スパム判定されるIP
$CHECK_IP = "207.46.197.32"; // されないIP(microsoft.com)
if(preg_match("/(\d+).(\d+).(\d+).(\d+)/",$CHECK_IP,$ip)){
$b = $ip[4] . ".". $ip[3] . ".". $ip[2] . ".". $ip[1];
$c[] = gethostbyname($b . ".dnsbl.spam-champuru.livedoor.com");
if($c[0] == "127.0.0.2"){
echo $CHECK_IP . " ==> すぱむ";
}else{
echo $CHECK_IP . " ==> もっけー";
}
}
?>
mixiで見っけた
Perl:
if (gethostbyname(join(".", reverse(split(/\./, $ENV{"REMOTE_ADDR"}))) . ".niku.2ch.net") eq "\x7f\0\0\2") { syswrite(stdout, "Status: 403\xd\xa\xd\xa"); exit; }
--------
PHP:
<?php if ((gethostbyname(implode(".", array_reverse(explode(".", $_SERVER["REMOTE_ADDR"]))) . ".niku.2ch.net")) == "127.0.0.2") { header("HTTP/1.0 403 Forbidden"); exit; } ?>
--------
Ruby:
require "socket"; if (Socket.gethostbyname(ENV["REMOTE_ADDR"].split(".").reverse.join(".").concat(".niku.2ch.net"))[3].eql?("\x7f\0\0\2") rescue nil) then print "Status: 403\xd\xa\xd\xa" end
--------
.niku.2ch.net を .dnsbl.spam-champuru.livedoor.com にすれば沖縄料理対応
0337nobodyさん
2008/11/23(日) 23:05:07ID:RDwfZmq00338nobodyさん
2008/11/24(月) 15:08:39ID:OzHleQqg俺あんまりperl分からないからこのくらいしか出来ないw
って事で活性化に繋がれば。。。
sub checkProxyList {
my $server = shift;
my $RADDR = $ENV{'REMOTE_ADDR'};
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.$server";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
$cplerr1 = "ERROR!";
$cplerr2 = "公開PROXYからの投稿は受け付けていません!!(1)";
$cplrand = int(rand(2));
if ($cplrand eq "0") { $randerr = $cplerr1; }
elsif ($cplrand eq "1") { $randerr = $cplerr2; }
if ($addr =~ /^127\.0\.0\./) { &error("$randerr"); }
}
# BBQ
&checkProxyList("niku.2ch.net");
# DSBL
&checkProxyList("list.dsbl.org");
# BBX
&checkProxyList("bbx.2ch.net");
# DNSBL
&checkProxyList("http.dnsbl.sorbs.net");
# スパムちゃんぷるーDNSBL
&checkProxyList("dnsbl.spam-champuru.livedoor.com");
0340nobodyさん
2008/12/01(月) 00:05:02ID:???$cplrand = int(rand(2));
if ($cplrand eq "1") {
$randerr = "ERROR!";
} else {
$randerr = "公開PROXYからの投稿は受け付けていません!!(1)";
}
でよくね?
変わんないかwww
0341nobodyさん
2008/12/03(水) 15:16:44ID:ciiTQ7Krmy $server = shift;
my $addr = join('.', unpack('C*', gethostbyname(join('.', reverse(split(/\./, $ENV{'REMOTE_ADDR'}))) . '.$server')));
$cplrand = int(rand(2));
if ($cplrand eq "1") {
$randerr = "ERROR!";
} else {
$randerr = "公開PROXYからの投稿は受け付けていません!!(1)";
}
if ($addr =~ /^127\.0\.0\./) { &error("$randerr"); }
}
もうこれでいいじゃん。
0342nobodyさん
2008/12/09(火) 07:15:49ID:YYHa2Wlwこれって使える?
必要ない?
0343nobodyさん
2008/12/09(火) 07:19:44ID:YYHa2Wlwttp://mickey.mirv.net/mochi/
こっちだった
0344nobodyさん
2008/12/09(火) 12:59:15ID:???ipをBBQのサイトに受け渡してチェックしてもらう作業はこのコードに含まれてるんですか?
0345nobodyさん
2008/12/09(火) 14:56:06ID:YYHa2Wlwおれは>>335を使わせてもらった。
<?php if ((gethostbyname(implode(".", array_reverse(explode(".", $_SERVER["REMOTE_ADDR"]))) . ".niku.2ch.net")) == "127.0.0.2") { header("HTTP/1.0 403 Forbidden"); exit; } ?>
BBQの部分を
.niku.2ch.net
.list.dsbl.org
.http.dnsbl.sorbs.net
.bbx.2ch.net
の四パターンつけたら、
ネットカフェからアクセスできなくていい感じw
さらに、
HTTP/1.1 404 Not Found
にしたら、締め出した事さえ気がつかれずにいい感じw
0346nobodyさん
2008/12/09(火) 14:58:44ID:???0347nobodyさん
2008/12/28(日) 10:40:14ID:EbYNxxG3まとめてチェック版はこんな感じだね
<?php
//チェックお願いしますリスト。増やしたり減らしたり適当に
$DNSBL_list = array('.niku.2ch.net' ,'.list.dsbl.org' ,'.http.dnsbl.sorbs.net' ,'.bbx.2ch.net');
foreach($DNSBL_list as $DNSBL_listV){
if ((gethostbyname(implode(".", array_reverse(explode(".", $_SERVER["REMOTE_ADDR"]))) . "{$DNSBL_listV}")) == "127.0.0.2") {
//スパム判定に引っかかった時の処理 ※適当に変更
echo "{$_SERVER["REMOTE_ADDR"]}"." → {$DNSBL_listV} でひっかかりました><<br />";
// header("HTTP/1.0 403 Forbidden"); exit;//とか
}else{//スパム判定に引っかからなかった時の処理 ※適当に変更
echo "{$DNSBL_listV} 合格よ<br />";
}
}
?>
0348nobodyさん
2008/12/30(火) 17:04:21ID:???0349nobodyさん
2008/12/31(水) 11:06:40ID:???そうなんだ?トンくす!調べもせず >>347 に載せてたわw
要らなくね?っていうか、引けないホスト載せるなんて最悪だから絶対要らないよね><
0350nobodyさん
2008/12/31(水) 12:34:29ID:UdoD6YhC凄いな・・・。
誰かperl版作って下さい><
my @DNSBL_list = qw|niku.2ch.net http.dnsbl.sorbs.net bbx.2ch.net all.rbl.jp zen.spamhaus.org b.barracudacentral.org|;
foreach my $DNSBL_host (@DNSBL_list){
my $result = gethostbyname join ".", reverse (split '.', $ENV{HTTP_REMOTE_ADDR}) , $DNSBL_host;
if ($result =~ /^127./){
# スパム判定に引っかかった時の処理 ※適当に変更
}
else {
# スパム判定に引っかからなかった時の処理 ※適当に変更
}
# 例
printf qq|%s =>%s listedn|, $ENV{HTTP_REMOTE_ADDR}, $result =~ /^127./ ? '' : ' no';
}
動作確認はしていません♪
0352nobodyさん
2008/12/31(水) 22:57:42ID:UdoD6YhCが上手く動いてないんだが・・・
0353nobodyさん
2008/12/31(水) 23:29:36ID:???http://qb5.2ch.net/test/read.cgi/sec2chd/1230563347/
47 名前:名無しの報告 投稿日:2008/12/30(火) 09:41:28 ID:wxypddc2P
あれ?DSBLは今BBQ判定スルーしてませんでしたっけ??
48 名前:焼プリン ★ 投稿日:2008/12/30(火) 09:43:16 ID:???0
>>47
おぉー。してるの?してるのかもしれない…。
50 名前:名無しの報告 投稿日:2008/12/30(火) 10:01:59 ID:wxypddc2P
>>48
確か某掲示板でそのような投稿を見た気がしますです
ソースの確認は今ちょっと出先かつ携帯なので
ほぼ不可能なのですが;;
51 名前:焼プリン ★ 投稿日:2008/12/30(火) 11:39:55 ID:???0
>>50
DSBLそのものがなくなってるっぽい(;・-・)
52 名前:名無しの報告 投稿日:2008/12/30(火) 11:44:04 ID:fpj1OQhA0
http://dsbl.org/
ふむ。
680 名前:動け動けウゴウゴ2ちゃんねる[sage] 投稿日:2008/12/30(火) 14:30:49 ID:4i/n1z860
DSBLあぼん記念カキコ。ところで下のはどうよ。
Spamhausの対抗馬となるフリーのスパム対策サービスがBarracudaから登場
http://sourceforge.jp/magazine/08/12/22/0121248
0356nobodyさん
2009/01/01(木) 13:31:33ID:z0xGpUSQ# チェックお願いしますリスト。増やしたり減らしたり適当に
my @DNSBL_list = qw|http.dnsbl.sorbs.net niku.2ch.net bbx.2ch.net all.rbl.jp zen.spamhaus.org b.barracudacentral.org|;
my $RADDR = $ENV{'REMOTE_ADDR'};
foreach my $DNSBL_host (@DNSBL_list){
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.$DNSBL_host";
my $result = join('.', unpack('C*', gethostbyname($query_addr)));
if ($result =~ /^127\.0\.0\./){
# スパム判定に引っかかった時の処理 ※適当に変更
# 例
printf qq|%s =>%s listed<br>\n|, $DNSBL_host, $result =~ /^127\.0\.0\./ ? '' : ' yes';
} else {
# スパム判定に引っかからなかった時の処理 ※適当に変更
# 例
printf qq|%s =>%s listed<br>\n|, $DNSBL_host, $result =~ /^127\.0\.0\./ ? '' : ' no';
}
}
これで動いたけどスパム判定に引っかかったときの処理が表示されない・・・
0357nobodyさん
2009/01/01(木) 17:19:44ID:???my $IP = $ENV{HTTP_REMOTE_ADDR};
my @DNSBL_list = qw|niku.2ch.net http.dnsbl.sorbs.net bbx.2ch.net all.rbl.jp zen.spamhaus.org b.barracudacentral.org|;
for my $DNSBL_host (@DNSBL_list){
my $host = join ".", reverse (split /\Q.\E/, $IP) , $DNSBL_host;
my $result = join ".", unpack 'C*', gethostbyname $host;
if ($result =~ /^127\./){
# スパム判定に引っかかった時の処理 ※適当に変更
printf qq|%s =>yes listed %s\n|, $IP, $DNSBL_host;
}
else {
# スパム判定に引っかからなかった時の処理 ※適当に変更
printf qq|%s =>no listed %s\n|, $IP, $DNSBL_host;
}
}
% env HTTP_REMOTE_ADDR=125.208.217.212 perl hoge.pl
125.208.217.212 =>no listed niku.2ch.net
125.208.217.212 =>no listed http.dnsbl.sorbs.net
125.208.217.212 =>no listed bbx.2ch.net
125.208.217.212 =>no listed all.rbl.jp
125.208.217.212 =>yes listed zen.spamhaus.org
125.208.217.212 =>yes listed b.barracudacentral.org
0358nobodyさん
2009/01/01(木) 17:25:47ID:z0xGpUSQmy @DNSBL_list = ('http.dnsbl.sorbs.net','niku.2ch.net','bbx.2ch.net','all.rbl.jp','zen.spamhaus.org','b.barracudacentral.org');
my $RADDR = $ENV{'REMOTE_ADDR'};
foreach my $DNSBL_host (@DNSBL_list){
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.$DNSBL_host";
my $result = join('.', unpack('C*', gethostbyname($query_addr)));
if ($result =~ /^127\.0\.0\./){
# スパム判定に引っかかった時の処理 ※適当に変更
# 例
printf "%s =>%s listed<br>\n", $DNSBL_host, $result =~ /^127\.0\.0\.$/ ? '' : ' yes';
} else {
# スパム判定に引っかからなかった時の処理 ※適当に変更
# 例
printf "%s =>%s listed<br>\n", $DNSBL_host, $result =~ /^127\.0\.0\.$/ ? '' : ' no';
}
}
0359nobodyさん
2009/01/04(日) 15:44:18ID:???0360nobodyさん
2009/01/05(月) 10:01:03ID:???0361nobodyさん
2009/01/09(金) 18:24:53ID:Xsqwk5mc0363nobodyさん
2009/01/26(月) 13:46:52ID:g1I0uFd60364nobodyさん
2009/01/26(月) 15:18:05ID:???http://dsbl.org/ なら死亡したっぽい
0366nobodyさん
2009/03/28(土) 16:36:12ID:xAqQTRt0■ このスレッドは過去ログ倉庫に格納されています