|
ずっと前から『コメントスパム』が鬱陶しかったのだが、何故だか昨日から頻繁に来るようになった(それまでは数日に1回とか、ずっと無かったりとか…)。
さすがにここまで頻繁にやられるとウザい!
人のブログのコメントにわざわざスパムを残す意味があるのだろうか?
コメントのリンク先をクリックさせようという事なんだろうけど…。
…というわけで対策(自作ブログシステムだと、こういうとこをすぐに手直しできるのがいいわ)。
IPアドレスでの制限が手っ取り早いのだが、アレレ?IPアドレス移り変えている。
乗っ取ったサーバをいくつか持っているんだろうな。
IPアドレス制限は使えない…。
アクセスログからすると、どうやら機械的に攻撃しているようなのでプログラムでチェックサムを付ける事にした(まぁHTML見れば分かるのでここまでの手はバラしてもOKでしょ)。
ある文字列を元にMD5を作ってそれと比較。
さて、相手はどぉ出るのか?
追記:ここの処理はチェックサムをinputタグに、type="hidden"として埋め込んでました。
~~~~
来た!コメントスパム。
137.164.143.110 - - [01/Feb/2008:15:02:19 +0900] "POST /addcomment.php HTTP/1.0" 206 2998
217.159.190.94 - - [01/Feb/2008:15:02:21 +0900] "POST /addcomment.php HTTP/1.0" 206 2998
ダメだ…。
相手は、一度ページを取得してinputタグを読み込んで解析してるって事か…。
では、コレでどうよ!
追記:ここの処理はチェックサムをsessionとして保存してました。
~~~~
↓来たな、コレだな(また、IPアドレス変えてるなぁ。攻撃の記事も変えてる、設定変えたな?)。
# cat blog.access_log | grep 66.232.101.20
66.232.101.20 - - [03/Feb/2008:16:25:27 +0900] "GET /1/503.html HTTP/1.1" 200 21133
66.232.101.20 - - [03/Feb/2008:16:25:28 +0900] "POST /addcomment.php HTTP/1.1" 200 2925
66.232.101.20 - - [04/Feb/2008:03:26:00 +0900] "GET /1/503.html HTTP/1.1" 200 21133
66.232.101.20 - - [04/Feb/2008:03:26:00 +0900] "POST /addcomment.php HTTP/1.1" 200 2925
# cat blog.access_log | grep 97.81.19.227
97.81.19.227 - - [04/Feb/2008:03:47:29 +0900] "GET /1/503.html HTTP/1.1" 200 21133
97.81.19.227 - - [04/Feb/2008:03:47:33 +0900] "POST /addcomment.php HTTP/1.1" 200 2925
GETした直後のPOSTだし、他のファイルを一切読んでない。やっぱ、機械的にやってる様子。
…で、今のとこ、サーバはうまく機能して、はじいてるけど…。
~~~~
やられたか…。
137.164.143.110 - - [04/Feb/2008:09:40:33 +0900] "GET /1/149.html HTTP/1.0" 200 45892
137.164.143.110 - - [04/Feb/2008:09:40:33 +0900] "POST /addcomment.php HTTP/1.0" 206 2998
137.164.143.110 - - [04/Feb/2008:10:58:52 +0900] "GET /1/194.html HTTP/1.0" 200 48016
137.164.143.110 - - [04/Feb/2008:10:58:53 +0900] "POST /addcomment.php HTTP/1.0" 206 2998
意外と賢いツールなのか?
少し方向性を変えてみた。
これでどうかな?(これがダメなら打つ手無いかもなぁ。よくある画像の数字を入れてもらう方法しかないかも…)
追記:ここの処理はsessionをチェックサムではなく時間にして、その時間をチェックしてました。
~~~~
書き込みあったけど、チャンとはじいてくれた。
66.232.101.20 - - [04/Feb/2008:14:50:32 +0900] "GET /1/503.html HTTP/1.1" 200 21088
66.232.101.20 - - [04/Feb/2008:14:50:33 +0900] "POST /addcomment.php HTTP/1.1" 200 2925
137.164.143.110 - - [04/Feb/2008:18:37:26 +0900] "GET /1/194.html HTTP/1.0" 200 52982
137.164.143.110 - - [04/Feb/2008:18:37:27 +0900] "POST /addcomment.php HTTP/1.0" 206 2925
こういうのも、勉強になるわ。
~~~~
対策してからもコメントスパムは来ているが、ちゃんと機能して書き込みはされていない(当然、普通の人からの書き込みはOK)。
なんかこう相手も対策して攻防戦…みたいのは無いのね(あっけないなぁ)。
ま、いいや(時間の無駄だし…)。
コメントスパムとは関係ないけど、Logwatchメールに
//appserv/main.php?appserv_root=~/etc/passwd
↑こんなのが載っていた。
当然、こんなファイルにアクセスできるはずはない(この手のアクセスは毎日山程来る)。
どこから来てるのか調べてみると…。
207.171.191.60 - - [05/Feb/2008:07:33:18 +0900] "GET //appserv/main.php?appserv_root=~/etc/passwd HTTP/1.1" 200 46004
# whois 207.171.191.60
[Querying whois.arin.net]
[whois.arin.net]
OrgName: Amazon.com, Inc.
OrgID: AMAZON-4
…
…
わぉ!アマゾンじゃん。
アマゾン社内のPCが変なウィルスに感染してるんじゃないのかい?
~~~~
10日前からコメントスパムの攻撃法が少し変わっていた(相手もこの記事を読んで対策してるのだろうか?)が、この前の対策が機能してキチンとはじいていた。
しかし、昨日突破されて2件の書き込み。
確かにログを見ると普通の人が書き込むのと似ている。
視点を変えて違う部分の対策をしてみた。
ソースを表示すると一部分かっちゃうので手の内を話すが、コメントをsubmitした時にjavascriptでCOOKIEに書き込んでその情報をPHPに渡すという感じのやり方(今回も勉強になった)。
たぶん、コレでコメントスパムは全てはじくはず!
追記:ここの処理はsessionと共にCOOKIEにも書き込む様にしてました。
~~~~
相手を怒らせちゃったのか、かなり頻繁に攻撃されるようになった。
全部はじいてるわけだから、あきらめてくれればいいのに…(どうやら攻撃ツールはCOOKIEには未対応だったみたい)。
211.75.179.238 - - [19/Feb/2008:04:05:45 +0900] "POST /addcomment.php HTTP/1.0" 200 2973
210.22.158.132 - - [19/Feb/2008:04:53:04 +0900] "POST /addcomment.php HTTP/1.1" 200 2973
163.27.149.2 - - [19/Feb/2008:04:54:42 +0900] "POST /addcomment.php HTTP/1.0" 200 2973
80.227.1.101 - - [19/Feb/2008:05:19:25 +0900] "POST /addcomment.php HTTP/1.1" 200 2973
163.27.149.2 - - [19/Feb/2008:05:23:30 +0900] "POST /addcomment.php HTTP/1.0" 200 2973
195.229.242.154 - - [19/Feb/2008:06:16:49 +0900] "POST /addcomment.php HTTP/1.1" 200 2973
59.42.250.145 - - [19/Feb/2008:06:43:55 +0900] "POST /addcomment.php HTTP/1.0" 200 2973
80.227.1.101 - - [19/Feb/2008:07:10:49 +0900] "POST /addcomment.php HTTP/1.1" 200 2973
212.142.143.116 - - [19/Feb/2008:07:34:40 +0900] "POST /addcomment.php HTTP/1.1" 200 2973
202.78.195.202 - - [19/Feb/2008:08:00:09 +0900] "POST /addcomment.php HTTP/1.1" 200 2973
それにしても、乗っ取ったサーバがいっぱいあるのねぇ(IPアドレスがことごとく違う)。
~~~~
COOKIEで対策する以前のSESSIONで、普通の人のコメントもはじいていたようなのでそちらはOFFにした。
追記:これでCOOKIEのみの保存です。
SESSIONに時間情報を書き込んでいたのだが、ブラウザによって挙動が違ってはじかれていたらしい。
…で、コメントできる様になったのを確認してもらったので、これで良し!
~~~~
あれから数ヶ月。
コメントできない人がいたので、制限を緩めた(プロキシやウィルスソフトがCOOKIEを遮断しているみたいな気がするが、自分とこでは普通に書き込めてしまうのでいまいち原因掴めず)。
追記:COOKIEへ書き込むタイミングをページ表示時にしたのですが…。
緩め過ぎて再びコメントスパムが…。
コメントスパムだけは防ぎたいので、元に戻しました。
コメント書き込めない人、すみません。
書いた文章無駄にしてしまうと思うと心が痛いのですが、COOKIE使うやり方では完璧に判別できなくて弾いてしまう様で…(やっぱり画像の数値入れてもらうやり方にしないとダメか)。
~~~~
COOKIE使うやり方では、普通の人の環境により書き込めない事があったので、他のやり方に変更しました。
これでスパムコメントが入らなければいいのだが…。
しばらく様子見です。
追記:ここの処理は秘密です。
※ 『ブログ』に繋がる関連物を 視覚的に探しだせるサイトを作ってみました(よろしければクリックしてみてくださいね)。
<2008-02-01 17:54:59>
ヤスコ(☆彡)
スパム…ほんとに
うっと〜しいですよね…。
しかも、英語やら…エロ関係ばっかりで
うんざりします。
<2008-02-01 20:06:19>
管理人
だよねぇ~、うんざり。
対策をちょっと甘くしたらまた来始めたよ。
何考えてるんだろぉねぇ~、こういう人って。分からん!
<2009-09-12 16:47:37>
yi(☆彡)
素晴らしい格闘。
勉強になりました。
また、時々来ます。
へこたれないで頑張ってください。
ページ閲覧者数:10人
[ ブログ ] 一覧へ
|