【荒らしお断り】 BBQを組み込んでる人【システム】
簡単に串を排除できるBBQ。使ってる? BBQ 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; } ################################################################################################# # ################################################################################################# BBQって http://dsbl.org/ に登録されてるプロキシより、チェックきついの? これって2chの串制限をそのまま組み込めるってことだよね? >>6 /* PHP BBQ */ 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') { DispError("ERROR!","公開PROXYからの投稿は受け付けていません!!(1)"); } return 0; } どこかで組み込んだの見たような気も ていうか、既に誰かやってんじゃね? Sn Uploaderに組み込もうとしたけどよくわからないので諦めた。 >>13 >2にもあるように、元は、メールの不正中継を防止するために ブラックリストのIPアドレスをDNSに登録したのがはじまりだと思う。 BBQは、それの亜流で、公開プロキシ等のチェックに特化している。 いわば歴史的な流れでそうなっていて、負荷云々とはあまり関係がない。 DNSベースなので、外部からの参照も簡単で、最新の状態を保てる。 もちろん、メール以外のアプリケーションにも応用がきくし for f in `seq 1 255`;do host $f.0.168.192.niku.2ch.net;done こんなの書いて試したら、いくつか 127.0.0.2 とか言うんだけど。 登録してる人達って、頭大丈夫かいな。 192.168.0.0/16 がグローバルとははつみみです。 >>16 IP偽装で飛んでくるやつを弾いてるだけだと思うが 2ch荒らした固定IPとか携帯とかも弾くようになってるのかな? >>19 IP 偽装なんてものは、web 鯖ではじくものなのかな? >>21 むしろweb鯖で弾かなくする理由を聞きたい IPベースならサービスごとに可否を設定する必要があるだろ とりあえず1行で思いついたので、(Perl) if(join('.', unpack('C*', gethostbyname(join('.', reverse(split(/\./, $ENV{'REMOTE_ADDR'}))) . '.niku.2ch.net'))) eq '127.0.0.2'){ print 'Content-Type: text/html', "\n\n", 'Proxy'; exit; } KUMIKO-MEN!! ニューヒーロー(ヒロイン?)の誕生だ! >1>32を、いったいどうすればいいのかわかんない どこか任意の行にコピペすればいいの? >>32 乙。久々のhit。 .htaccessにも応用できないものかな >>32 組み込めたんだけどさー アクセスした時点でProxy表示されてしまうよ BBQは生IPでも弾くことあるっていうのに、いきなりその仕打ちは酷すぎるとおもうのだけど 掲示板なら投稿処理周りとかに組み込めばいいじゃない >>48 32のProxyて書いてある部分を違うのに変えれ 何で今更と思わずにはいれないが、 >>1 や>>32 で組み込むとBBQのDNSサーバが死んでいる時にタイムアウトまで待つから、 投稿制御などに組み込んだ場合、重いから投稿ボタン連打する奴が出てきやすいよ。 PerlでNet::DNSモジュールが使えるならば、 http://qb5.2ch.net/operate/kako/1103/11034/1103495887.html の243-244を参考にするといいかと。 自分はちょっと書き換えて使ってる。 >>1 =32は投稿処理には向かない。 全面アク禁用で構わないよ。 普通のIP制限だって無関係なやつを規制しちゃうんだから どっちを優先するかじゃない? PHPの場合にBBQのDNSサーバが死んでて投稿に時間が掛かる状況になった時の打開策は? PearにNet_DNSがあった。 こちらの方が良さげ お前何でそんなこともわからんでこの板いるんだよ、とか言われそうだけど、 >>32 はアクセス自体はじいちゃうけどperlだったら#!/usr/bin/perl 下とか適当な所にぶちこむだけで動作する。 >>1 のは掲示板とかのアクセスは許可して投稿処理だけしかはじかないけど、 perlの適当なところに入れるだけじゃダメで少しはperlの知識が必要ってことでおk? >>1 はサブルーチンだから適当なところ(投稿処理時でなくてもいいけど)で呼び出して使う。知識ってほどの知識は特にいらないと思うけどな。 そのまま入れても、DispErrorなんていうルーチンが無いだろ。 単純にエラー画面出すだけのサブルーチン作ればいいんだけど。 >>64 ネタだよな。いまどきDispライブラリ入れないでperl使えるか? いやつまらんし。 こんな奴に乗って何の得があるのかと。 >>62 >>32 のだって、投稿処理のサブルーチンに入れれば、投稿だけに効くし >>1 のだって、スクリプトの頭で呼び出せば、全てに効くんだが。 >>57-61 試したのなら組み込み例を…プリーズ…… 投稿だけに効かすと重い時に連打されるから 頭に入れて出力される文字を若干ソフトに変えればいい 生IPではじかれたやつも違う日に繋いで入れればよし。 >>74 それはベターと考えてるから粘ってるんじゃないの 久美子MENって悩んでる連中の中でいまだに上手くできたという報告がないけども 知識なくても、それっぽい場所探して組み込みと試行繰り返せばどうにかならんかな どうしてもわからんなら久美子MENスク晒してみたらいい わざわざ試行してやる気Neeeeeeeeeeeeけれども、一発で見抜けるようなら教えてやらんでもない期待はするな この板、WebProgramわかんねーくせにくんじゃねーよサルwww 的な感じなのかと思い込んでたけど結構優しいんだな。 あー、Proxyとか出さずに、ただいまメンテナンス中です。見たいな表示にしとけばいいのかw 32でそういう表示じゃなくて 特定のファイルを表示させるには どうすればよかんべ? print 'Content-Type: text/html', "\n\n", 'Proxy'; ここを変える。ファイルの読み込み・表示なんて説明させないでね askaBBSに組み込んでみたんだが効果がなかった。 何故だ? 普通に組み込んだだけじゃダメなの? 何処に入れても効果ない・・・。 あの>>1 のソースだけでいいんだよね? 他に入れるのあるの? >>89 スレ読めばわかるが、>>1 の入れただけじゃ駄目だぞ。 ちゃんとしかるべきところで呼び出さないと。 アクセス制限とかの下に入れたけど無理か・・・。 う〜ん、どうすれば・・・。 gethostbyaddr関数が使えないと無理ですよね? 後、ダイアルアップでも大丈夫っすか? ダイアルアップだとHOSTの読み込めないから弾かれるかな? ダイヤルアップでもhostは読み込めるのだけど、何が言いたいんだろう? 荒らしは何でもかんでも弾くものではないんだが。 Proxy認定されてるものを弾くだけだろ。 個人的なメモ ttp://bad.tune.jp/archives/2005/11/bbq.html アクセスが多い掲示板でこれを使っても、2chの方へ 負荷がかかりすぎて迷惑ということはないですか? システムの理屈がわかってないので。 DNS問い合わせだからそんなに負荷かからないはず。 問い合わせる側のほうが負荷かかるかも。 >>102 あと普通チェックは書き込み時だけ必要だから頻度はかなり低いはず。 自分の掲示板のログにある3000ほどの書き込みは約700ほどのアドレスから書き込まれていた。 これをBBQに食わせてみたら34が陽性反応。これらのうち逆引きが出来てたのは20でこれらは 全て荒らしでなかった。 残る14。 4つは消し忘れた荒らし。 問題は残る10。 tracerouteすると怪しげな所に行くのだが、投稿内容はいたってまともな 普通の投稿に見える。 プライバシー意識の強い、スキルのあるユーザーが串を 使ってるのか? これらの投稿を弾くべきか? ぱっと見まともでも、自演かもしれないからなんとも。 普通にそういうのは弾いちゃっていいと思うよ。 被害を受けてなかったらあえてはじく必要はないんじゃないの? 下手を打って逆恨みされるとかイメージダウンとか サイト管理者にとってはそっちのほうが痛いと思うけど 後ろめたいものが無ければ問題ないから大丈夫では。 管理に割くコストを考えたら全然有りだと思う。 >>108 いや、問題はBBQを導入したらそういう人は選択の余地無くはじいてしまうんですよね。 たしかに逆恨みは怖い。 この程度で逆恨みするやつだと、逆に弾いた方が結果的に幸せな気がする。 「あなたのIPアドレスはProxyか、または過去にProxyとして使われていた可能性があります」 とかメッセージをやわらかくすればどうだろ? >>112 そうですね。 あとホワイトリスト機能など加えてユーザーから要望があれば ユーザーのアドレスを「BBQを無視」のリストに加えられるように一応しておくとか。 DSBLが誤爆ありまくりだからなあ。 うちは、BBQに引っかかった人のみポートチェックする予定 >>113 すっかり串投稿がなくなりました。 1日たったところで投稿拒否のログをつけ始めたのですが、 ログに残るのはリンク数、HTMLタグ、日本語必須で拒絶されたものばっかりでBBQまで 達しません。 これらもBBQで陽性反応の可能性は高いですが、負荷を減らすために BBQは最後の砦としてしてます。 しかたなく自分で串さしてログを残して満足しました。 PROXY使ってないのに「PROXY規制中!」 38 http://qb5.2ch.net/test/read.cgi/sec2chd/1136730837/ ↑のスレ見ると、結構BBQを入れるのは慎重になったほうがいいと思うよ でも大概のユーザ(一部CATVのように外部に出て行くIPアドレスが共通ではなく、動的IPアドレスのプロバイダ)は 繋ぎなおせばそれで回避できるから問題ないと思う。 固定IPアドレスで規制されている場合、故意か不注意かは別として、 公開プロクシ扱いになっていたということだから規制されても仕方がないし。 自分で荒らしたからBBQに登録されちゃったのに、 さも何もしてない被害者のように振舞う奴もおおいからな。 ttp://qb5.2ch.net/test/read.cgi/operate/1104339319/364- こいつみたいに。 ちなみにこいつはセキュ板でも知らん顔で無実で〜みたいな感じでほざいてた。 そもそも古いVerのLogovista翻訳ソフトをnyで落として穴に気づかず串に使われてる場合が多い。 ISPで巻き込まれたなら、ISPに文句言えばいい。 固定で登録されているなら、上記のlogovistaとかネットワーク関係(ネットでnaviとか)とかそういうソフトをチェックすることだ。 ポートがあいてるなど自鯖たててるからとかだけでbbqに登録されないよ。 >>107 ,>>111 ,>>118 見たいのがどこかの掲示板管理者だとしたら BBQの弊害云々以前にそこはもうダメぽwwwwwwwww つーか国内のまともなプロバイダ使っていて、BBQにはじかれる奴なんて極少数。 2chはトータルの人口が多いから、引っかかる奴が出てくるだけ。 >>120 は>>118 の先の人とかじゃねぇのw そんな予想通りな脊髄反射してるようじゃ>>120 の言うとおりと思われてもしかたない つーかなにそんなに追い詰められているんだ PRO板だぞここわ 日本で最も荒らしの多い掲示板は? それは、2ちゃんねる。 その2ちゃんねるが、5年に渡って 築き上げた荒らし対策のノウハウが、今ここに。 2ちゃんねるのBBQプロジェクトで収集した 公開プロキシーのデーターを、あなたの個人的な 掲示板やブログやwikiに組み込んで使えます。 セットアップは簡単、導入は、今すぐ。 わからないことがあったら、2ちゃんねるの PHP板のウイザードが親切丁寧にサポートします。 日本最高レベルの荒らし対策の技術を、あなたの元に。 >>135 荒らし対策と言うよりただのプロクシはじきだぞ。 BBQは一部に過ぎないんだけどな Rock54とかSamba24とか。 裏で実装されてるのも沢山あるよん。。 1 ■クラブやバーで問題客を締め出す顔認識システム ■ < http://hotwired.goo.ne.jp/news/20060302301.html > クラブやバーの入り口で客の顔写真を撮り、以前に問題を起こし たことがわかっている人物の写真と比較する顔認識システムが開 発された。複数の店でデータベースを共有できるため、問題のあ る客を締め出して犯罪を抑制する効果が期待できる。しかし、一 方でプライバシーの侵害や誤認識を懸念する声も上がっている。 どなたか↓のサイトにあるアップローダーの投稿処理にBBQを 導入するにはどこに>>32 などを入れればいいのか教えて下さい 適当なところに色々入れてみましたが串でも普通に通ってしまい全く変わりません ttp://sugachan.dip.jp/download/uploader.php ソースは↓です。 http://pic.syuriken.jp/cgi/upload.txt まずは、なにをうpしてるロダか明らかにせよ。 話はそれからだ。 >>144 特定されそうですが某携帯機種用のアイコンとか壁紙とかスキンのロダです 専門板でageると>>144 とか>>147 みたいなバカしかこないよ まあ、専ブラで更新は全てチェックしているわけだが。 少なくとも2行目に入れれば全てのアクセスについては有効になることはわかってるよな? >>143 のならメイン処理ってとこに入れればよさげ 下記スクリプトにBBQを組み込みたいのですが、 ソース再配布不可のため丸投げスレでは拒否されました。 【. CGI名 .】 Response BBS Ver.1.23 【配布先URL】 ttp://dream.lib.net/room/cgi/e_resbbs.html 【. 置き場所 .】 ttp://dream.lib.net/room/sys/dlcount/dlcount.cgi?f=4_2 resbbs.cgiの165行目に(手入力による)ホスト規制に関する記述があります。 只今、勉強中でありますが、さっぱり分かりません。 どなたかアドバイスをよろしくお願いいたします。 >>154 BBQで引っかかった時エラーのデザイン気にしなきゃ単純に>>32 をほうりこんでおけばいいやん >>154 さっぱりわからないのでは、他人に教えてもらってもわからないと思いますので、 よくわからない、程度まで自力で勉強してきてくださいね。 プロキシを使っていなくても規制される人を通すにはどうすればいいのでしょうか? お願いします。<(_ _)> 2chの運営に掛け合ってみたら? 巻き添え規制の場合は南無だけど。 今 ■ウィルス爆撃相談所&焼き処2【RockBBQ】 http://qb5.2ch.net/test/read.cgi/sec2chd/1144022103/ 見てたら判るけどウイルスによる爆撃で焼きまくりだから あきらめてもらうか、それこそスクリプトに手をくわえてホワイトリスト処理させるしかないんじゃねぇの? >>1 のとかってどういうシステム? 2ちゃんが規制してきたデータをそのまま弾くってこと? あと常に規制リストは更新されてるの? 前に携帯から荒らしてきたやつは(固体番号じゃないやつ)@ezweb〜だったけどそれも規制できるのかな? >>161 規制リストは規制情報板で規制される度にリアルタイムで反映される >>162 個体番号を表示しない携帯は全てはじくはず import socket #socket.setdefaulttimeout(2.0) def BBQ(ip): try: return socket.gethostbyname((reduce(lambda i, j: str(i) + '.' + str(j), reversed(map(int, ip.split('.', 4))), '') + '.niku.2ch.net')[1:]) == '127.0.0.2' except socket.error: pass return False >>165 Python には array を reverse する関数が無いの? こっちの方がいい import socket #socket.setdefaulttimeout(2.0) def BBQ(ip): import socket try: return socket.gethostbyname((reduce(lambda i, j: str(j) + ?.? + i, map(int, ip.split(?.?, 4)), ??) + ?niku.2ch.net?)) == ?.0.0.2? except socket.error: pass return False >166 あるけどインプレースで行うからreversedを呼ぶ スレ内をPHPで抽出すれば目的のものは手にはいるんじゃね? if(implode('.', gethostbyname(implode('.', array_reverse(explode('.', $_SERVER['REMOTE_ADDR'])) . '.niku.2ch.net'))) == '127.0.0.2'){ header('Content-Type: text/html'); exit('Proxy'); } function is_blacklisted($addr) { $chklist = array( 'niku.2ch.net', 'list.dsbl.org' ); $ip = explode(".", $addr); if ($ip) { $rev = "{$ip[3]}.{$ip[2]}.{$ip[1]}.{$ip[0]}"; foreach ($chklist as $host) if (checkdnsrr("$rev.$host", 'A')) return TRUE; return FALSE; } } warnig出なくなりました。 しかし、プロキシ通しちゃいましたね。 perlの2行物は遮断できたのですけど何故かな。 32のcgiをphpにrequireて出来ます? 文字がそのまま出ます。 32を32.cgiとして表記 requireを<php の下に書いたが無理でしたね。 >>177 PHPからPerl呼び出せるなんてはじめて聞いたんだが。 <?php require_once('Net/DNSBL.php'); $dnsbl = new Net_DNSBL(); $dnsbl->setBlacklists(array('list.dsbl.org', 'xbl.spamhaus.org', 'sbl.spamhaus.org')); if?($dnsbl->isListed($_SERVER['REMOTE_ADDR']))?{ ????die('block!!'); } ?> \\ / \\ // _/ \ ヽヽ ー--‐ヘ__,  ̄7 //,へ、 ヽ i i ( / // `ー=二_ .「| 「| | | }ー--ヘ こ な { /イ // ` ー-=|」_|」 | | ノ \ れ .ん | |1 j/| _-‐' `ー- __ | j| i | な | は. な l |刈 /5芥 /5芹\ j,イi j| | | | .ぁ .ん l 斤| c{::_j} {::_j}c 行くl| 。 | | | | .で | ハL|/// i //// |ノ/ l| | | | | .す | ° 「iハ __ /´ | o ,} | | !! か 廴__ |川ヽ. /_ ̄ ヽ / 八 -{. !! | ぁ { ̄ c 八| \ { L___,「} / i/j/ } / ( / }ヘl l个.` 二. ´ 个 | / ヽ / ) { ,.-‐─¬'´ト| | | |/`ー-- 、 `ヽ__/ !?| ゜/\ | }!人 /刈{ / \ /' ∠_ |_ \__/ __/| / / \ ⌒ヽ⌒ / \ 「  ̄\小/ |/ | / | | ,..-─‐‐y┐/| ー广}ー ト、 / ̄ ̄ヽ_ | // | / ー‐--} ノ | L__,イ ̄ト、_ノ / {二 ̄ | ! \\ 下のような投稿が一日数回され困っています。 >>32 を入れてみたところ、1週間くらいは投稿がなく、安心していたんですが 最近、また同じような投稿が始まりました。 串ではなく生IPできてるんでしょうか? http://www.dotup.org/uploda/www.dotup.org3726.png 結構生IPでやってくの多いよ。 BBQだけでなくurlが複数ある場合とかで弾いた方が楽かと。 [url= を含む投稿を弾くと激減するよ 海外では御用達のphpBB用リンクタグだが、使ってるのはphpBBじゃないっしょ? >>183 [url= これなんだと思ってたら、そういうことだったのか。 >>183 最近はずいぶん減ったな。 それよりもリンクをHTMLで直接張ってくるほうが10倍以上あるから </a>を禁止ワードにしてはじいてる。 人いるかな? Perlへの組み込み自体は簡単だったんだが、これって2chが落ちてる場合 (BBQにつながらない場合)、どうなるんだろう。 タイムアウトして処理続行? それともエラーで止まっちゃう? 後者だったら困るなあ。 >>51 に関連しそうなことが書いてあるが、自分の能力では理解不能。 >>186 TimeOutして続行ですね。(127.0.0.1が返ってこないから) で、Net::DNSを利用することでTimeOutの秒数が指定できることから、 短くすればもたつき感がなくなるかと。 Perl に組み込めるほどのスキルがあるなら考えるまでもなくわかるでしょ;-P あ、続行ですか。よかった。 それにしても敵(日本人)はどっからプロキシリスト探してくるんだろうな…。 今まではCyberSyndromeで対応してたんだが、載ってないプロキシだから スルーされまくり。ましてや普通の投稿を装うもんだから気色悪い。 BBQを組み込み、引いて結果を保存するがそれによって拒否はしないという風にして2ヶ月ほどたった。 毎日300〜400件の迷惑書き込みがあるが、BBQで陽性反応が出る書き込みは週に1回あるかないか。 自分の場合はぜんぜん役に立たないという結論。 どんな相手に狙われてるかで結構違うと思うよ。 うちは掲示板が複数あるんだけど、 ある掲示板へのスパム投稿元はBBQヒット率がすごく高いけど 別の掲示板ではさっぱり、って感じだから。 (スパマーによって特定の掲示板しか狙わないのが謎だけど) BBQもそりゃ万能じゃないけど、入れておけば保険にはなると思う。 海外からの無差別ボットにはあんまり役立たないような気もするな。 >>193 海外無差別ボットはいくつかの簡単なルールで100%拒否出来るから無問題。 うっとうしいのは国内エロ関係。 URLを禁止ワードとして加えていくけど、BBQで 一網打尽に出来れば便利なんだけどな。 ああいう書き込みって串使わんのかね。 エロは数としては少ないけど、特定のプロバイダ経由が多いね。 主に、SPAM対策が弱い・遅れてるところ。通報してもまともに 取り合ってくれないような。 うちは大阪のocnがしつこい。 レンタル掲示板だと対処が大変だから設置しようかなぁと考え中。 ヒミコードとかで弾くのが一番確実になるのかねぇ。 もちろんやろうと思えば対処もされるんだけど、負荷とか手間が大きくなるから 向こうにとっても美味しくないと思うし。 BBQはDNSBLのデータも取り込んでなかったっけ? >>194 少なくともプログラムをかじった事がある奴は100%って言葉は使わない。 プログラムに限った事じゃないが常に例外と言うものがある。 海外無差別ボットと絞り込んだ上で、現状では100%ってことは十分にありえるだろ。 いちいち噛み付くことか? ボットネットの奴は100%遮断可能。 疑問に思ったのか、国内ISPから手動で貼りに来てた。 操っている本人は、いくつかのISPに加入しているみたい。 bbqに登録されている串って踏み台にされてるPCだったんだ。 なんと!BBQスレで! ということはボットは必ずしもBBQに登録されているわけではないってことかあ。 して、その方法とは・・・?公開すると対策されてしまうから秘密? というかネットカフェから書き込んでるとかじゃなくて複数のISPに加入してんのかな、やっぱり。 前beyondの悪マニを荒らしてたバカは 13のプロバイダーを使い分けてたよ。たしか。 TEAMホゲホゲ、とかじゃなくて個人?すげー・・・執念だ。 「Proxyと思われるポートが開いています」はBBQの機能? >>7 phpの掲示板だったら何処でも使えますか? bbqって久しぶりに導入したけどむずい・・・ってスキルが落ちただけか > bbqって久しぶりに導入したけどむずい・・・ってスキルが落ちただけか もともと何もできないアフォだったのでは? BBXやBBNはどぉ? niku.2ch.netの代わりはどこ? 仕組みを把握してないんですがこれってdnsに問い合わせてるだけなんですか? そう。 登録された串のホストが127.0.0.2として返って来るから、それで判定するだけ。 >>32 これ組み込んだんだけど、ホワイトリストはどこに登録すればいいですか どこって・・・・ その組み込んだ手前で判断して分岐すればいいじゃん 書いてホスィ・・・ 丸投げスレでトロイが反応しちまうので・・・ ほらよ if (ホワイト || BBQOK) { echo "ようこそ"; } else { echo "帰ってください"; } 2時間で解除されちゃうし、2ch以外じゃあまり効果なくね? その2時間ってのを永久になるよう設定を変えればいいのでは .htaccess制御ってある日ミスって全公開されそうで怖い >>http://www.gamesragnaroklink.net/link/ あぁ、俺の素のACは80余裕で超えてるけどね Lvも経験値が半分になる領域 門に突っ込んでも大してダメージ受けませんが何か? うなってDEXナイトだろwwwwwww これってレンタル掲示板(ユーザーじゃなくて運営側が)勝手に組み込んでもいの? まさかあとから誠意を示せ、なんて言ってくるような893な商売じゃないでしょうね?w >>226 バーボンハウスを参考にリロード対策スクリプトを作ってみた。 仕組みはクッキーかアクセスログ(ホストのみ)の配列数をカウントし 一定以上なら警告。指定時間内のリロード更にが続けばブラックリストへ。 >>233 投稿スクリプトで、プロクシ切り替え&クッキー取得&破棄 2ちゃんねる閉鎖騒動が起こってるけど、BBQどうなるんだろ。 そろそろ自前で対策考えないといけないかもな。 ホントマジで困るんだけど>< BBQが量も速さもダントツだっただけに 止まってるときは使えないという、致命的な欠陥があるじゃんwww えらく403で弾いているアクセスが増えてるなと調べてみたら hv13.steephost.com(72.232.191.50) から怒涛のトラバが来てた。 主要RBLでチェックしたけど、BBQだけしか引っかからなかった。 やっぱ便利だよねぇ。 掲示板ではなくてサイトのアクセス自体をBBQで防ぎたいんだけど可能? やり方など有れば教えて( ゚д゚)ホスィ… サイト自体をcgiやphpで出力するように設定して、 BBQで判定が黒だったらその後の出力をしないように設定しちゃえばおk ログの上の方にそんな感じのがなかったかな。 サンクス >>32 や>>179 がそれか .htaccessしか触ったこと無いからよくわからんなあ BBQでググっても掲示板を規制するやり方しかヒットしないしどうしたものか だからそんなに難しくないぞ。 ヒアドキュメントでHTML部分をそのままコピペしたのをプリントして、 それよりも前にBBQ判定を入れるだけ。 >>245 mod_access_rbl 見たいなApacheのモジュールがあったはず。 これを使えば.htaccessでも使えるよ。 ヒアドキュメントでググってやってみた #!/usr/bin/perl print "Content-type:text/html\n\n"; print "if(join('.', unpack('C*', gethostbyname(join('.', reverse(split(/\./, $ENV{'REMOTE_ADDR'}))) . '.niku.2ch.net'))) eq '127.0.0.2'){ print 'Content-Type: text/html', "\n\n", 'Proxy'; exit; }"; print "<head>"; print "<title>test</title>"; print "</head>"; print "<body>"; print "test"; print "</body>"; print "</html>"; 500エラー出たけどこんな感じ? 更新してなかった、>>247 どもです。 ググってみました。レンタルサーバーだからちょっと導入できないぽいです。 試してないけどこんな感じ? #!/usr/local/bin/perl print "Content-type:text/html\n\n"; if(join('.', unpack('C*', gethostbyname(join('.', reverse(split(/\./, $ENV{'REMOTE_ADDR'}))) . '.niku.2ch.net'))) eq '127.0.0.2') {print "<p>Proxy</p>";} else{ print <<"_HTML"; <head> <title>test</title> </head> <body> <p>test</p> </body> </html> _HTML else の閉じがないからかな。 perl使いじゃないのでよく知らんが。 で、BBQなどで弾いたときは HTTP/1.0 403 Forbidden も出力した方がいいと思うがなぁ。 >250 500 Internal Server Errorでた。 #!/usr/local/bin/perlでいいはずなんだけどなあ >>250 だが、すまん確かに閉じ忘れてた。 今ローカルと鯖に上げて試したけど一応動いたよ。 >>253 まあ実際に使うつもりで書いた訳じゃないので。 DSBLみたいに公開するって云う手かぁ。。。 >>256 _HTML } ですー♪ #!/usr/local/bin/perl print "Content-type:text/html\n\n"; if(join('.', unpack('C*', gethostbyname(join('.', reverse(split(/\./, $ENV{'REMOTE_ADDR'}))) . '.niku.2ch.net'))) eq '127.0.0.2') {print "<p>Proxy</p>";} else{ print <<"_HTML"; <head> <title>test</title> </head> <body> <p>test</p> </body> </html> _HTML } ファイル名を test.cgi でやってみたが500エラー出るな 何がいけないのかわかんね まずはactiveperlでも入れてローカル環境で試せ。 どうせ鯖のエラーログなんか読めない環境なのに、 鯖に実際に上げて試してるんだろ? 他の人にいい迷惑だ。 >>258 test.cgiに実行権限がついてないのでは? 当たり前だがこれ組み込むとレスポンスものっそ遅くなるな なんか、くだ質に成り下がっているが、元質に戻ってこんなんはどぉよ。 http://imadetato.com/item/246 #!/usr/local/bin/perl 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') { &error("公開Proxyからの閲覧は許可されていません"); } 1; ################################### をbbq.cgiの名前で作って、掲示板の2行目に require 'bbq.cgi'; を入れるってのはどうよ? 初心者に優しいBBQ設置方法だろ。 >>266 それ優しいかもしれないけど 表示毎にBBQに負荷がかかる恐れあり >>268 >>32 を何行目に入れたらいいかわからないんだけど… 肉2chにローカルIPが登録されたせいで、 ブログにローカルからコメントができなくなったんだが、 192.168.x.xってアドレスはスパムになりえるの? お前さんにはローカルでも2chからみたらグローバルIPだろw だから焼かれてるのはローカルじゃない。 いくつか登録されてるけどIP詐称関係だったか何だったか忘れた。 >>272 は自分が使うIPだか /^192\.168\./ だかのときは チェックしないようにすればいいよ。 >>274 1.1.168.192.niku.2ch.net も当たりくじ。 うぅむ、、、外した方がよい?>192.168.0.0/24とか >>274 いや、グローバルIPとして、192.168.x.xは使え得るのかが気になった。 >>273 ,275 おーけーありがと。 このIPだけ許可してみる。 10. 172.16-32. 127.0.0.1 192.168. をBBQから外しておきました。 一応、アドレス詐称攻撃(Spoofing attack)ってのがあるから 外から>>278 のアドレスで接続してくるかもしれない。 んだけど、グローバルIPを割り当ててあるIFに対しては ローカルIPアドレスからの送受信は行わないようにFWで 蹴落としているのが普通だよね。 ホワイトリスト化とかなんかBBQを使った応用とかしてる人いる? >>282 BBQをホワイトリストにしても意味は無い。 同様の仕組みをホワイトリスト用に使ってはいるけど。 >>226 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 >>289 コメントなどBBSへの書き込みはそれでいけるかもしれんが、 トラックバックなど鯖から飛ばす分は、海外設置鯖も多いので それを排除してしまっていいのかどうか... >>290 俺はkrfilter(iptables)を入れてて気にならないけど、 スクリプトだと厳しいかもね。 >>258 をサイトトップに置いてつかってんだけどBBQ側にアクセスログ見られまくり? これどうやって規制リスト取るんですか? niku.2ch.netってサーバがないみたい・・・ >>294 そのままぶち込んでも動かないと思っていましたが、 上の方で場所にもよるみたいな書き込みがなされていましたね。 読んでいなくてすみません、ありがとうございます。読み直してきます。 toshinariスクリプトにいれるときはどうすればいいのかな? 「とかげの尻尾切り」のスクリプトって公開されてないのでしょうか? HOST:p2009-ipbf911funabasi.chiba.ocn.ne.jp まちBBSはDSBL、BBQ、BBXだけじゃなくてポートチェックとか ほかにも何かいろいろやってるんですか? 2chよりもプロキシ対策が強いみたいですが また弊害とかありますか BBQって#!/usr/local/bin/perl の下に追加すれば基本的に動くんですか? あと、掲示板の場合bbs.cgiのような所に入れた方が良いんでしょうか? >>298 あれは恐らくApacheのモジュールだから 公開するの難しいんじゃね? >>301 そのまま組み込んでも何も意味無い。 ってかその掲示板によって色々と変更箇所があるし・・・。 とりあえず初めから読めば有力情報があるはず。 >>303 サンクス。 >>266 界隈の入れてみた。 うまく動作しているかは分からないが・・・ >>304 自分で適当なプロクシ通して試せばいいじゃないか。 >>304 素直に32を適当なところに入れれば楽じゃないか? そのあとにプロキシ通してみりゃいいと思うよ。 掲示板とか置いてないけどトップページにこれ組み込んでおいてプロクシ使ってくる奴全部弾いてる きもちええわー 串使ってくる奴って大体ろくな理由じゃない奴が殆どだからな あれ? これもう死んでる? x.x.x.x.niku.2ch.netが見つからん。 普通に索けるが。 % host -t a 125.48.89.70.niku.2ch.net. 125.48.89.70.niku.2ch.net has address 127.0.0.2 DSBLとDNSBLを入れようと思うのですが、 これであってますか? また、ふつうの携帯が弾かれるとか、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; 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))); if ($addr =~ /^127\.0\.0\./) { &error("公開Proxyからの投稿は許可されていません"); } } ってやれば &checkProxyList("list.dsbl.org"); &checkProxyList("http.dnsbl.sorbs.net"); と関数1個で済む。あと利用するモノによっては127.0.0.2じゃないのも 返す場合があったと思うので、その点もいじっておいた。 DNSBLの類も万能じゃないので、誤爆とかはありうる。 >>311 俺は>>310 じゃないけど &checkProxyList("niku.2ch.net"); ってやればBBQにもなるって事でおk? っつかBBQとDSBL、DNSBLって使い分けとかした方がいいの? よく3つの違いが分からねえ >>311 ありがとうございます。 早速書き換えました。 上記の関数に # BBQ DSBL DNSBL BBX &checkProxyList("list.dsbl.org"); &checkProxyList("http.dnsbl.sorbs.net"); &checkProxyList("bbx.2ch.net"); &checkProxyList("niku.2ch.net"); で対応してみました。 >>312 上半分は当たり。>>313 見りゃわかるか。 使い分け、ねぇ。 何をやらかせばそれぞれのリストに入るのかを調べればいいんじゃないかな? BBQの場合は「逆引き未設定なだけです」がリスト内にいたりする。 >>314 ふむ。 調べてみたけどDSBLとBBQは同じものと考えちゃっていいんだ。 BBXは業者系のリストでDNSBLがスパム系のリストでおk? 新鮮さを求めるのなら、list.dsbl.org.を直で叩くと良いかと♪ 如何せん量が甚大なんで、BBQでは鮮度が落ちてしまいます。 そして、DSBLのそのほとんどが腐乱しているっていうのも現実だったり(哀) BBQすげーな、書き込める串で書き込んだら3分くらいで串判定出て弾かれた 素人したらば管理人なんですが、どれをどこに組み込めばいいのでしょうか? デフォルト設定は知らんが投稿規制のカテゴリにある。 >>319 「Proxy用PORTが開いているホストからの投稿禁止」にチェック入れちゃうと投稿者が自宅WWWサーバ動かしてたりした時に書きこめないから注意な。 ProxyまわりはBBQだけで通常は十分。 >>320-323 ありがとうございました。助かります。 掲示板じゃなくてアクセス自体をPHPで弾きたくてさ >>327 そんなもん>>7 見りゃすぐだろ。 それも出来ないようなら諦めろ <?php 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版はちゃんと弾かれたんだが >>329 そういう使い方をしたいのなら、 <?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; } ?> >>332 面白そうだね。 とりあえずうちの掲示板のspamよけルーチンに、BBQより優先度高くして追加。 しばらく様子見だな。 <?php //$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 にすれば沖縄料理対応 じゃあ俺がこの板のを参考にちょっと付け加えたやつね。 俺あんまり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"); >>338 $cplrand = int(rand(2)); if ($cplrand eq "1") { $randerr = "ERROR!"; } else { $randerr = "公開PROXYからの投稿は受け付けていません!!(1)"; } でよくね? 変わんないかwww sub checkProxyList { my $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"); } } もうこれでいいじゃん。 bbm.2ch.net これって使える? 必要ない? ttp://info.2ch.net/wiki/index.php?BBM2.0 ttp://mickey.mirv.net/mochi/ こっちだった phpの場合は>>7 のコードを貼り付けて呼び出すだけでおkなんですか? ipをBBQのサイトに受け渡してチェックしてもらう作業はこのコードに含まれてるんですか? >>344 おれは>>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 あ、答えになってなかったね。ごめんちょ<m(__)m> なるほどね まとめてチェック版はこんな感じだね <?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 />"; } } ?> list.dsbl.orgは要らなくね?あぼーんしちまったようだし >>348 そうなんだ?トンくす!調べもせず >>347 に載せてたわw 要らなくね?っていうか、引けないホスト載せるなんて最悪だから絶対要らないよね>< >>347 凄いな・・・。 誰か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'; } 動作確認はしていません♪ printf qq|%s =>%s listedn|, $ENV{HTTP_REMOTE_ADDR}, $result =~ /^127./ ? '' : ' no'; が上手く動いてないんだが・・・ 679 名前:動け動けウゴウゴ2ちゃんねる[sage] 投稿日:2008/12/30(火) 13:19:46 ID:NVII90bc0 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 >>351 ってかちゃんと動作しきれてない気が・・・ >>351 # チェックお願いしますリスト。増やしたり減らしたり適当に 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'; } } これで動いたけどスパム判定に引っかかったときの処理が表示されない・・・ >>351 をベースに>>356 の修正ポイントを反映+α。 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 >>356 だけどコレで動いたww my @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'; } } 変なこと聞くけど、なんで問い合わせるときIPアドレスひっくり返すの? DSBLを使いたいのですがこれはユーザー登録しないと使えないのでしょうか? ################################################################ #---------------BBQシステム (公開Proxy排除機能)----------------# ################################################################ 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') { &error("Proxy感知!"); } } これでも作動するから平気だよね? >>368 作動するなら問題ないでしょ。 過去レス見ればさらによし。 ちゃんとタイムアウト使ってれば大して重くならないんじゃないかな BBQとDNSBLを合体させた最強のプログラムはないものか ちなみにPHPで 揚げ足取りたい訳じゃないんだが DNSBLは仕組みの名前で、BBQはそれを使った2ちゃん用ブラックリストじゃないの? だから合体させたも何も、BBQとそれ以外のDNSBLに同時に問い合わせるようにするだけじゃなくて? PHPです。 function checkProxyList($msg = '') { # 荒らしお断りシステム # BBQ http://info.2ch.net/wiki/index.php?BBQ //チェックお願いしますリスト。増やしたり減らしたり適当に $DNSBL_list = array('.niku.2ch.net' , '.dnsbl.spam-champuru.livedoor.com' , '.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") { //スパム判定に引っかかった時の処理 header("HTTP/1.0 403 Forbidden"); exit;//とか // }else{//スパム判定に引っかからなかった時の処理 ※適当に変更 // echo "{$DNSBL_listV} 合格よ<br />"; } } } 使いたいとこで、下記のように呼び出します checkProxyList(); 403 とか 404 返さずに広告張ったページにとばせばいいのに・・・って エラーページでそれくらいみなやってるか スパム系は、投稿するサイトを自動で探し出してリストを作るから403や404にして 「そんなのネーよ!」で、拾われないようにするんだと思う。 広告張ったページであろうとなかろうと、スパムは容赦なく訪れてマシンガンのようにやってくるし、 そのぶんサーバーに不可は掛かるし、スパムは広告なんて見ないだろうし。 スパム投稿と判断された奴にGENOウイルスでも踏ませたらどうだい 【超絶基地外12歳荒らしの判明しているコテハン】 plus01 ★ 管理人 ★ πナップル ★ きうい ★ mango+ ★ Fine ★ YV/TV ◆.Y./V..TV. ジエン ◆2.14..sI1E ネックス ◆Nex/RZxaHI いざこざ ◆Nex/RZxaHI いざこざ ◆Iza..hlnPI いざ・・ ◆Iza..hlnPI FuLL! ◆FuLL/FW.EQ 1206 ◆1206ePaU1M ふぁー ◆fah/7D.Rkk ふぁー 返し ◆fah/7D.Rkk 6分のろーぷら ◆LowPrice/6 労ぷら椅子 ◆LowPrice/6 【livevenus:20】 ◆LowPrice/6 6分のろーぷら ◆MAyUzEEE/E 6分のろーぷら ◆MYU/e0Imzi1E 6分のろーぷら ◆/UeVRo.Tv. リック◆Lick/SPaQs 連投すみません ◆Lick/SPaQs うずまき ◆vzqJXqubSg リック ◆vzqJXqubSg ナマコぞうすい ◆WgQ1EvIdds 【判明しているリモホ】 p6073-ipbffx01marunouchi.tokyo.ocn.ne.jp z232163.dynamic.ppp.asahi-net.or.jp w62.jp-t.ne.jp cw43.razil.jp >>383 お前初質板から延々と大量にコピペ貼ってるよな >>383 ipngn\d+marunouchi.tokyo.ocn.ne.jp \.dynamic.ppp.asahi-net.or.jp \.jp-t.ne.jp \.razi.jp PerlでNet::DNSモジュールが使えない場合でタイムアウトする処理って出来ないですか? 串刺してるやつとネットカフェからの投稿者だけ網にかけたい場合は、BBQだと大げさすぎるのかな? 善良者も巻き込まれてるみたいで投稿数が激減してしまったんだが。 >>391 串じゃなくても海外のプロバイダからのアクセスがはじかれる あとは、焼かれた携帯からもはじかれるな あと、ほんとにたまに日本の大手のプロバイダが焼かれてアクセスはじかれる場合もある うーん、どうなんだろうか 大手プロバイダのIPアドレスで何年も昔に焼かれた奴も放置されてる場合もあるしなー BBQ見てるだけなら焼かれ携帯は通るような。 善良者さんのIP or IPレンジはホワイトリスト化して素通りにしてあげればいいと思うよ。 生IPでやんちゃするのもいるわけだし状況に合わせて運用。 >>393 あっそうだな 携帯は通るな 勘違いしてた れすd まあ時間が立てば善良者だけの掲示板に育つわけだから、ある程度の犠牲は仕方ないか・・・ Wordpress <?php /* Plugin Name: 荒らしお断りシステム:BBQ Plugin URI: プラグインの配布のURL Description: Open Proxy(公開プロキシ)サーバ等のIPアドレスの国産のブラックリスト Version: 0.0.1 Author: ID:kplGY7FD(2chの人) Author URI: 作者のURL */ add_action( 'login_form', 'checkProxyList' ); //ログインフォーム //buddypress ログインフォーム サイドバー add_action( 'bp_sidebar_login_form', 'checkProxyList' ); add_action( 'register_form', 'checkProxyList' ); //add_action( 'comment_form', 'checkProxyList' ); add_action( 'signup_extra_fields', 'checkProxyList' ); //buddypress add_action('bp_after_signup_profile_fields', 'checkProxyList'); function checkProxyList($msg = '') { # 荒らしお断りシステム BBQ http://info.2ch.net/wiki/index.php?BBQ //チェックお願いしますリスト。増やしたり減らしたり適当に $DNSBL_list = array('.niku.2ch.net' , '.dnsbl.spam-champuru.livedoor.com' , '.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") { //スパム判定に引っかかった時の処理 @header("HTTP/1.0 403 Forbidden"); exit;//とか // }else{//スパム判定に引っかからなかった時の処理 ※適当に変更 // echo "{$DNSBL_listV} 合格よ<br />"; // @header("HTTP/1.0 403 Forbidden"); exit;//とか } } } ?> 近頃、基地外によくBBQサーバ落とされるみたいだしなんらかのタイムアウト処理は入れたほうがいいな PerlだったらNet::DNSあたりでPHPだったNet/DNSか 2chが閉鎖する閉鎖するって言ってるけどBBQサーバはどうなるんだろう BBQシステムは残ってほしいよなあ。 最悪仕様やプログラムを公開してほしい。 KDDI利用のサーバーは、注意。 遮断された模様。 bind.dion.ne.jp can't find **.**.**.**.niku.2ch.net: Non-existent host/domain 例えばブラウザで串設定してこのスレ開くとボボンハウスに飛ばされ また専ブラで同じ串設定して書き込むと書き込み失敗するのに BBQ判定は127.0.0.1で返ってくるのは何故でしょう? ちなみに使った串はsoftbank221111054231.bbtec.net ポート80です。 他の串で>>358 やってみたけど全スルーでした 要するに完全じゃないのでこれ以外に定番の基本的な串チェックかまさないとダメという事みたいですね スレ汚しすみませんでした OCNもお断りされたのか *** nv-kc151.ocn.ad.jp can't find niku.2ch.net: Non-existent host/domain 最近BBQめっちゃ重いけど、まだ普通に使ってる人いる? 反応がめっちゃ遅くなったよね。 ホームページの掲示板で荒らし対策に使ってるので普通に使えるように してもらいたい。 やっぱどこでもそうなのかな… というか、遅いどころか正常にチェックしてないっぽく、何通してもスルーしてくれる。 もう外部アクセスできなくなったのかな。 そうだね。スルーしちゃってるね このまま使えなくなっちゃうのかなー 非常に重宝していたのだが どうもsc対策でさくらサーバはじいて外部参照できなくしてるみたいね。 長らく使わせてもらったお礼代わりに、今代替して使ってるDNSBLを記しておく。 all.rbl.jp bl.spamcop.net zen.spamhaus.org(リストの種類によって返り値が127.0.2-11で可変するので注意) 以上。 ではさようなら。 niku.2ch.net正引きもできなくなってるじゃん・・・ 糞マンゴーの悪政の影響でBBQは外部参照禁止になりました 使えるようになったと思ったらまた使えなくなった 代わりになるものないのかな 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 QSCHX3VEAA ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。 82PAB read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる