自分自身のための ものづくり / 自分自身のためのものづくりメモ

* RandomNoteの検索用クローラ対策

#RandomNote #Web #掲示板spam対策
 googleやらyahooやらmsnやらが、入れ替わり立ち替わり、smode=sumやらsmode=countやらcmd=editやらのついたページを、別々のものと見なしてGETしていく。
 こっちにもあっちにも無駄な負荷がかかる、とても不幸なことだ。

とりあえずの対策として、それらへのリンクをformにしてみた。

 検索エンジンは、いくらなんでもsubmitしないだろうから、無駄にリンクを辿らなくなると期待。

 ただし、spam投稿用クローラが心配。textもtextareaもないのにPOSTする馬鹿がいるかもしれない、と危惧している。

ロボットの類相手では、cmd=editとかsmode=hogeとかあったら、404を返すようにした

 既にsmode=hogeとかのページのurlが記録されていて、リンクが無くなっても読みに来る。だから、ロボットの類相手にそれらのページは404を返すようにした。
 ロボットか?の判断は、user_agentにhttp:が入っているかどうか。

ロボットなどに対して、サイドバーを渡さないようにした

 検索の邪魔だよね。本文にないキーワードがあるのは。
 さらに、ロボットに送るデータ量が減るという恩恵もあった。無駄なデータが減るのは、互いにとって有益だ。

* ナンバーディスプレイ対応モデム

#途中経過 #ナンバーディスプレイ
 ナンバーディスプレイ対応モデムにて、電話番号を表示させてみた。

参考ページ

X68K.NET: Admin Diary.
2004年04月13日(火)
#1 [NET][ISP][VoIP][NTT] アナログモデムdeナンバーディスプレイ(IP電話)
http://x68k.net/diary/?200404b&to=200404130#200404130

結果

  • 正式にナンバーディスプレイ対応を謳うMRV56PCにて、電話番号が表示された。
  • TO-BXF56Kは、"AT#CID?"等に反応したが、着信時に番号は表示されなかった。
  • USB-DM560は、"AT#CID?"等にERRORを返した。
  • VAIO PCG-XR1G内蔵モデムは、"AT#CID?"等にERRORを返した。

条件

  • OSはWindowsXP
  • ハイパーターミナルにて対応するCOMポートに接続
  • ナンバーディスプレイ対応疑似交換機(インターフェース社製 IF-101)を介して接続した電話機より発呼した。

ATコマンドへの応答など

(ReadMore...)

* deny from 64.124.85.0/24

#Web
 再び、BecomeBotに検索履歴をかき回されたので、.htaccessにて排除することにした。
robots.txt BecomeBot締め出し
http://baku.homeunix.net/WiKi/rnx/index.rb?1138996756.txt
にてのけ者にしたはずなのだが、BecomeJPBotは別物というわけか。え゛ー。
 ちなみに、robots.txtは最初にちゃんと読んでる。

 20秒に一度のアクセスだったり、UAの項に載っている http://www.become.co.jp/site_owners.htmlは「お客様が指定されたページは見つかりませんでした。」だったり、かなり感じ悪い。
(ちなみに、正しくは、http://www.become.co.jp/site_owner.html だそうだ。その辺の食い違いも感じ悪いぞ)
 また、他の多くのクローラの挙動と違ってリファラを送る点で、RandomeNoteの敵。

↓はた迷惑なアクセスの記録
(ReadMore...)

* 色々な掲示板spam

#掲示板spam対策 #Web
 うちの掲示板へ書き込みを試みたspam投稿ロボットの形跡を挙げる。
(ReadMore...)

* spamのPOSTに対して404を返してみる

#掲示板spam対策
 近頃、掲示板へのspam投稿試行頻度が鰻登り。突破率は0.1%もないとはいえ、なかなかに鬱陶しい。
 POSTに対して一見書き込みが成功した風な返答してるのが原因かな、と思い、POSTをspamと判定したら問答無用で404を返すようにしてみた。

2006/12/27,21:36:37,209.213.220.227,"mail2.actslife.org","-","-",GET,"/BBS/BBS.cgi","","1.1",200
2006/12/27,21:36:39,209.213.220.227,"mail2.actslife.org","-","-",POST,"/BBS/BBS.cgi","","1.1",404
 以前は、改造の成果を確認するためにspamのPOSTをいまかいまかと楽しみに待ち構えたものだけど、今や1時間経たないうちに結果が出る。とほほ。

* DSBLが効かない

#掲示板spam対策
 7月末にDSBLは効果絶大なんて書いたのだが、近頃(12月現在)はめっきり効果がない。

 現在も、掲示板のプログラム冒頭でDSBLに問い合わせて、登録されていたら問答無用で404を返しているのだが、ログを見るとspammerっぽいアクセスの防御率は1割を切っているっぽい。
(詳細な分析はしていないので、ぱっと見だが。
 導入当初は「ほとんど」のそれっぽいGETを弾けていたのだけど。

(「メールアドレスとして有効な文字列があったら」投稿拒否しており、それによりほぼ全てのspam投稿は拒否されているが)


 原因は不明。DSBLがあまり更新されていないのか、DSBLには登録されないbotnetを使った投稿が主流になったのか…。
 どちらにせよ、防御率と誤判定の危険を天秤にかけると、DSBLの使用は、もはやあまりお勧めではない。

* spam投稿司令塔とゾンビの兵隊

2006/10/25,22:18:17,209.67.214.90,"server1.xpressaccess.com","-","-",GET,"/BBS/BBS.cgi","","1.1",200
2006/10/25,22:18:19,201.13.121.178,"201-13-121-178.dsl.telesp.net.br","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
2006/10/25,22:18:22,86.55.117.135,"","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
2006/10/25,22:18:27,59.94.9.179,"","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
 server1.xpressaccess.comがフォームを取得した後、OpenProxy経由での書き込みを試みている様子がはっきりとわかる。
 対象BBSは、DSBLに登録されているホストには問答無用で404を返すように改造してあるので、投稿自体は失敗に終わっている。
 しかし、司令塔みたいなserver1.xpressaccess.comはDSBLには登録されていない。ただの想像だが、DSBLとかに登録されないように運用しているのだろう。BBQでも引っかからないし。で、潰してもいい人様の穴のあいたマシンを踏み台にして、実際のspam投稿を行う、と。


 以下は、他にもあった同様の痕跡。
2006/10/24,23:38:14,72.36.151.106,"dcwindows.net","-","-",GET,"/BBS/BBS.cgi","","1.1",200
2006/10/24,23:38:23,200.204.126.148,"200-204-126-148.dsl.telesp.net.br","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
2006/10/24,23:38:32,61.95.205.88,"dsl-KK-static-088.205.95.61.touchtelindia.net","-","-",POST,"/BBS/BBS/BBS.cgi","","1.0",404
2006/10/24,23:38:33,221.247.27.81,"221x247x27x81.ap221.ftth.ucom.ne.jp","-","-",POST,"/BBS/BBS/BBS.cgi","","1.0",404
2006/10/24,23:38:36,59.94.101.21,"","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404

#掲示板spam対策 #Web

* 掲示板spammeerのPOSTの投げ方

 formを生成した時刻をtype=hiddenで記すようにしてみた。
 結果、以下のことがわかった。
・フォームの内容は最初にGETしたときのを使い回す
・不明なhiddenは、その時のをそのまま送る

 GETするのとPOSTするのとでホストを変えるのを逆手にとって、hiddenでホストに関する情報を入れておくのも手だな。
(ReadMore...)

* DSBLは効果絶大

公開プロキシ弾きを投入してからspammerがやってくるのを今か今かと待っていたのだが、やっとやってきた。
2006/07/12,16:24:26,222.113.48.67,"","-","-",GET,"/BBS/BBS.cgi","","1.0",404,660
2006/07/12,16:24:30,59.10.196.81,"","-","-",GET,"/BBS/BBS.cgi","","1.0",404,660
2006/07/12,16:24:33,219.251.229.245,"","-","-",GET,"/BBS/BBS.cgi","","1.0",404,660
はい、さようなら。

 spammerがコストをかけずにあちこちからspamをばらまくにはいわゆる公開プロキシを使うぐらいしか手がないだろう。よって、公開プロキシを弾くことは簡便で極めて効果的な掲示板spam対策だと思う。
(botnetを使う手もあるが、そういうクラックをできるspammerはかなり少ないだろう)

#掲示板spam対策 #Web

* いわゆる公開プロキシからのアクセスを弾く

掲示板へのspamが激しくなりつつあるので対策。
(ReadMore...)

* 日本国外からのアクセスを弾く

 掲示板spam対策として、日本国外からのアクセスの場合は404を返すようにしてみた。
 逆引きではなくIP自体で判断するので、逆引きできない場合も機能する。

2006/07/01,08:13:29,66.249.65.194,"crawl-66-249-65-194.googlebot.com","-","-",GET,"/BBS/BBS.cgi","","1.1",404,671,"-","","Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
 googlebotとかも弾いちゃうのは想定外だったけど、BBSを拾われてもあまりいいこと無いのでこれでよしとしよう。むしろ、これで正常動作を確認できた。


 404を返しつつ普通にフォームを含んだHTMLを返せば、spam投稿ロボットを欺けるかな?

#掲示板spam対策 #Web

* YAH!X試験中

 Yahoo!オークションWebサービスにより提供されるXMLデータを使うYahoo!AuctionHelperを作成中。

↓とりあえずの実験バージョン
http://baku.homeunix.net/program/yahX/yahX_test01.rb?category=2084045752&pic=true
categoryを書き換えれば他のカテゴリを見れる。
pic=trueで画像表示。それ以外で非表示。

 YAH!の特徴である各種NG機能は、とりあえず「NGキャラクタ」のみ実装。
 「次の25件」をいちいちクリックしなくてもいいので、現状でもとりあえずそこそこ役立つと思う。

 YAH! Ver.3としようかと思っていたけど、Yahoo!オークションWebサービスでは今のところキーワード検索ができないっぽいなどの理由で、Ver.Xとして別物としての扱い。

#Ruby #REXML #ヤフオク #YAH! #途中経過