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

* RandomNoteWiki記法 - TextFormat

* Becomebot再排除

#Web #RandomNote
 RandomeNoteの検索履歴が、またかき回された。犯人はBecomeBot。

robots.txt BecomeBot締め出し
http://baku.homeunix.net/WiKi/rnx/index.rb?1138996756.txt

deny from 64.124.85.0/24
http://baku.homeunix.net/WiKi/rnx/index.rb?1171846535.txt

…にて排除していたのに。
 サーバ変更で色々再構築して、ついでに.htaccessの使用は最小限に抑えたためだ。

 さようなら、BecomeBot。
iptables -A INPUT -j DROP -s 64.124.85.0/24

* 無神経な根こそぎGetの馬鹿やろーっ!

 RandomNoteの検索履歴をしっちゃけめっちゃかにかき回していきやがって…。
 まぁ、こっち側で対策するべきことではあるが、どうやって区別したものやら…。

 あと、根こそぎ巡回するのは別にかまわないのだが、秒間2アクセスとかは勘弁してくれ。これは問答無用でツールとその利用者が悪い。
…って、ログを調べるとUAを色々変えつつ(詐称?)766回のクエリかよ…。悪意はないんだろうけどその無神経さは許容範囲の外だな…。

 ま、ここまで無神経なアクセスは滅多にないので、対策はべつにいいか。


2008年1月12日追記
 zia-httpmirrorの作者と利用者のばかやろーっ!!!
 上に書いたのよりはマシだけど、履歴が滅茶苦茶になるのは同じだ。せっかく、「超整理法」的に出番が多いのが上になっていたのに。
 とりあえず、.htaccess をいじって、/から閉め出すことにした。

 上に書いたようにこーゆーのは滅多にない、けど、時々は確実にあるんだよな…。

#RandomNote #Web

* 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:が入っているかどうか。

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

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

* GETでspamを投稿する奴への対策

#RandomNote #掲示板spam対策

 後述のように、GETでspamを投稿を試みるロボットがある。
 そのようなリクエストにより、OR検索が行われ、最近の検索ワードがめちゃくちゃになる。
…というわけで、とりあえず、超やっつけで対策。

def do_search
  @word = @param['word']

  if @word.size > 32
    print_header
    print_footer
    return
  end
 検索用の文字列が32文字以上なら、何も処理を行わずに終了する。
(ヘッダとフッタは返す)

(ReadMore...)

* RandomNoteの敵はspam投稿用クローラ

#RandomNote #掲示板spam対策 #Web

2007/09/23

 久々に、RandomNotespam投稿ロボットが引っかき回していった。
 対策が必要とは思ってるのだけど、たまにしかないし、投稿その物はBASIC認証で弾かれるしで、面倒なので1年以上放置してる。

 後述のような感じで、2時間半にわたり、GETとPOST合わせて800回以上のアクセスを行う酷いロボットだった。
 401で弾かれているのに延々と試行するのは無駄で、馬鹿なプログラムだと思う。ふつー、エラーが出たらとっととあきらめて他の無防備なBBSとかblogとかWikiを探すよう組むと思う。

(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...)

* 人とロボットを区別したい

 またRandomNoteの検索キーワードがかき回された。
 今度の犯人は、おそらく先読みプログラムの一種。UAはIEを名乗っているので、種類は不明。

(ReadMore...)

* RandomNote 作成日を表示+年月日のみで時分秒は非表示

def print_leaf(fname, view=nil, anchor=1)
内を改造
      s = "%s\n\n%s\n%s" % [mes.chomp, Time.at(fname.gsub(/\D/,'').to_i).strfti\
me('create : %Y/%m/%d (%a)'), File.mtime(fname).strftime('update : %Y/%m/%d (%a\
)')] # modified by bakuchikujuu

#RandomNote #Web

* RandomNoteのrefererを検索エンジン(等)に登録させない

 アクセスログを眺めてたら、RandomNoteのrefererページに検索エンジン経由でのアクセスがあった。

 Webページでの披検索語の表示は迷惑極まりない。その単語が更にCGIに登録されて、それを検索エンジンが拾って、その単語で検索した人がアクセスして…。
 俺自身が大嫌いな要素なのに自分がやらかしていたとは…なんてこった…。

 というわけで、ざくざくとRandomNoteをいじった。
 もともとのコードにヘッダにロボット避けを入れる機能があるので、refererの表示の際にはそのようにするように変更。
def do_referer内
#  print_header(' - referer')
print_header(' - referer', true) # 検索エンジンにリンク元が登録されると邪魔

 あと、cahge_logも検索エンジンにインデックスされるべきじゃない。
def do_change_log
#  print_header
print_header(' - change log', true)

#RandomNote#Web

* RandomNote ロボット対策

 今度はgooのichiroが検索ワードを引っかき回していった。

 検索ワードによるリンク先にアクセスするとその単語がageられるけど、ロボットにかき回されると困る。…が、ロボットによるアクセスだけをうまく制限する方法が思いつかない。他の人にも役に立つかもしれないメモ帳を目指しているので、ロボットの完全排除は論外だし…。

 ぱっと思いつくのは、UAを見てロボットだったら記録に残さないように改造すること。でも、ブラックリスト方式だから、最初にリストを作るのがやや面倒で更に新手が増えるたびにリストを更新する必要があるのが面倒だぁ。

 とりあえずの対策として、ichiroとかはRefererが空なので、Refererがnilな場合は検索ワードを追加しないようにした。
def save
  PStore.new(CACHE_DATA).transaction do |db|
#    db['search']  = @search
    db['search']  = @search if @cgi_referer != nil

2006/02/09:今度はmsnbotが引っかき回していった。対策をミスっていたのが発覚し訂正。
cgi_refererはリファラ無しの場合はnilなのだな。

#RandomNote #Web