[BlognPlus]ブランドスパム奮闘記
最近「モンクレール」「MONCLER」というブランド名のコメントスパムが多い。
前回は文章が英語のみのコメントを省いていましたが、今回は日本語の挨拶を混ぜてくる。

今日は~^^またブログ覗かせていただきました。よろしくお願いします。
MONCLER ダウン http://www.japan2moncler.com


しかも投稿されるIPはバラバラ。
実に厄介である。

根本的にはコメント投稿を禁止がいいのですが、たま〜に本当のコメントがあるので避けたい。
ということで禁止ワードを設定。特定のコメントがくればブロックする。

<やり方>
index.phpの460行前後の

if (!$entry_id || !$utf_name || !$utf_mes
に下記の条件を混ぜる。

|| preg_match("/モンクレール/", $utf_mes)
|| preg_match("/MONCLER/", $utf_mes )

でも、はっきり言っていたちごっこですよね。

2013.5.8追記

またぞろスパムが沸いてきたので、根本的にシャットアウトする方法を考えることに。

根本的というのは、

・IPアドレス
・特定の文言を含む

という方式ではダメだということ。いちいち追加しなきゃいけないから。

また、ランダムに発生する文字列を投稿者に入力してもらうというのも、
「わざわざコメントしてくれる人の手間を増やす」というのが嫌なので却下。

ということで、「コメントの文字列の3割が半角であれば投稿できない」ようにしてみる。
最近はスパムに日本語を混ぜるのもあるが、URLなどを書いたりするので3割、としてみた。

まるごと参考にできるソースがあったので、借用させてもらいました。
参考:スパム判定の簡易バリデーション

<実際のソース>
index.phpの460行前後の

if (!$entry_id || !$utf_name || !$utf_mes

の前後を下記の様に直す。

$char_num = mb_strlen($utf_mes, 'UTF8');
$byte_num = strlen($utf_mes);

if (!$entry_id || !$utf_name || !$utf_mes || (($char_num * 3 - $byte_num) / 2 / $char_num * 100) > 30 )


さて、これでなくなるかどうか?

2013.6.15追記
ダメでした。
今度はボールペンの「モンブラン」のスパムがぞろぞろ沸いて出た。
本文はオール日本語、URLに販売ページのアドレスが買いてある。

こんな嫌らしいやり方で売り上げにつながるのだろうか?
つながるからやってるんだろうな。
数百万ほど掲示板に書き込みすれば、2・3人は買う人もいるんでしょう。

これをどうやって防ぐかというと、もうIPなりキーワードなりでブロックするという
泥縄方式か、コメント欄を閉じるしかないわけで……。

ただまあ、「戦い続ける限りはまだ負けてない」とミケ分隊長(※)も言っているので、
もう少し抵抗しよう。
※漫画「進撃の巨人」の登場人物。こんな格好いい台詞を言ったすぐ後に死ぬ。

どうするかというとメール欄とURL欄を非表示にする
あるべきメール欄とURL欄がなくなった際、スパムを投稿するプログラムがどうするか、という実験ですな。


2013.8.11追記
まだスパム投稿が終わらない。本当にゴキブリみたいな連中である。
今度は「httpを含むコメントをはじく」ようにしてみた。

アドレスが書けないなら何のメリットもないので、あきらめるだろう……
と思ったけど、ダメでした。

仕方ないので、原点に返って「ブランド名を含むコメントをはじく」ようにする。
ネットで著名なブランド名をとってきて、それをphp関数用に加工。

具体的には、下記のような感じです。


|| preg_match("/アビレックス/", $utf_mes )
|| preg_match("/アシックス/", $utf_mes )
|| preg_match("/アディダス/", $utf_mes )
|| preg_match("/アニエスべー/", $utf_mes )
|| preg_match("/アバクロンビー&フィッチ/", $utf_mes )
|| preg_match("/アルブータス/", $utf_mes )
|| preg_match("/アルマーニ/", $utf_mes )
|| preg_match("/イヴサンローラン/", $utf_mes )
|| preg_match("/ヴェルサーチ/", $utf_mes )
|| preg_match("/ヴィヴィアンウエストウッド/", $utf_mes )
|| preg_match("/ウェンガー/", $utf_mes )
|| preg_match("/エゴイスト/", $utf_mes )
|| preg_match("/エドウィン/", $utf_mes )
|| preg_match("/エトロ/", $utf_mes )
|| preg_match("/エミリオプッチ/", $utf_mes )
|| preg_match("/エルメス/", $utf_mes )
|| preg_match("/カルティエ/", $utf_mes )
|| preg_match("/カルバンクライン/", $utf_mes )
|| preg_match("/カンゴール/", $utf_mes )
|| preg_match("/キラーループ/", $utf_mes )
|| preg_match("/グッチ/", $utf_mes )
|| preg_match("/クロエ/", $utf_mes )
|| preg_match("/グンゼ/", $utf_mes )
|| preg_match("/コーチ/", $utf_mes )
|| preg_match("/コンバース/", $utf_mes )
|| preg_match("/サッカニー/", $utf_mes )
|| preg_match("/サヤカ/", $utf_mes )
|| preg_match("/サルート/", $utf_mes )
|| preg_match("/シチズン/", $utf_mes )
|| preg_match("/ジバンシー/", $utf_mes )
|| preg_match("/シャネル/", $utf_mes )
|| preg_match("/シャルルジョルダン/", $utf_mes )
|| preg_match("/ジューシークチュール/", $utf_mes )
|| preg_match("/ショパール/", $utf_mes )
|| preg_match("/ジルサンダー/", $utf_mes )
|| preg_match("/スウォッチ/", $utf_mes )
|| preg_match("/スケッチャーズ/", $utf_mes )
|| preg_match("/ステューシー/", $utf_mes )
|| preg_match("/セイコー/", $utf_mes )
|| preg_match("/ゼニア/", $utf_mes )
|| preg_match("/セリーヌ/", $utf_mes )
|| preg_match("/セルジオロッシ/", $utf_mes )
|| preg_match("/ゼロハリバートン/", $utf_mes )
|| preg_match("/セントオードリー/", $utf_mes )
|| preg_match("/タイメックス/", $utf_mes )
|| preg_match("/タウン&カントリー/", $utf_mes )
|| preg_match("/ダナキャラン/", $utf_mes )
|| preg_match("/ダブルアールエル/", $utf_mes )
|| preg_match("/ダンヒル/", $utf_mes )
|| preg_match("/ディーゼル/", $utf_mes )
|| preg_match("/ディオールオム/", $utf_mes )
|| preg_match("/ティファニー/", $utf_mes )
|| preg_match("/ティンバーランド/", $utf_mes )
|| preg_match("/トゥミ/", $utf_mes )
|| preg_match("/トッズ/", $utf_mes )
|| preg_match("/トミーガール/", $utf_mes )
|| preg_match("/トミーヒルフィガー/", $utf_mes )
|| preg_match("/ドミンゴ/", $utf_mes )
|| preg_match("/トリンプ/", $utf_mes )
|| preg_match("/ドルチェ&ガッバーナ/", $utf_mes )
|| preg_match("/ナイキ/", $utf_mes )
|| preg_match("/ニューバランス/", $utf_mes )
|| preg_match("/ノースフェイス/", $utf_mes )
|| preg_match("/バーバリー/", $utf_mes )
|| preg_match("/バリー/", $utf_mes )
|| preg_match("/ハンティングワールド/", $utf_mes )
|| preg_match("/バレンシアガ/", $utf_mes )
|| preg_match("/ピエールカルダン/", $utf_mes )
|| preg_match("/ビッグジョン/", $utf_mes )
|| preg_match("/ヒミコ/", $utf_mes )
|| preg_match("/プーマ/", $utf_mes )
|| preg_match("/フィフティーファイブディーゼル/", $utf_mes )
|| preg_match("/フェラガモ/", $utf_mes )
|| preg_match("/フォリフォリ/", $utf_mes )
|| preg_match("/プラダ/", $utf_mes )
|| preg_match("/フランクダニエル/", $utf_mes )
|| preg_match("/プリングル/", $utf_mes )
|| preg_match("/ブルガリ/", $utf_mes )
|| preg_match("/フルラ/", $utf_mes )
|| preg_match("/プロケッズ/", $utf_mes )
|| preg_match("/ホーガン/", $utf_mes )
|| preg_match("/ポールスミス/", $utf_mes )
|| preg_match("/ボッテガヴェネタ/", $utf_mes )
|| preg_match("/ポリス/", $utf_mes )
|| preg_match("/ホリスター/", $utf_mes )
|| preg_match("/マークジェイコブス/", $utf_mes )
|| preg_match("/ミュウミュウ/", $utf_mes )
|| preg_match("/ムスク/", $utf_mes )
|| preg_match("/ラカイ/", $utf_mes )
|| preg_match("/ラガシャ/", $utf_mes )
|| preg_match("/ラコステ/", $utf_mes )
|| preg_match("/ラテルネ/", $utf_mes )
|| preg_match("/ラルフローレン/", $utf_mes )
|| preg_match("/ランカスター/", $utf_mes )
|| preg_match("/ラングラー/", $utf_mes )
|| preg_match("/リー/", $utf_mes )
|| preg_match("/リーガル/", $utf_mes )
|| preg_match("/リーバイス/", $utf_mes )
|| preg_match("/リーボック/", $utf_mes )
|| preg_match("/ルイ・ヴィトン/", $utf_mes )
|| preg_match("/ルコック/", $utf_mes )
|| preg_match("/ルミノックス/", $utf_mes )
|| preg_match("/レイバン/", $utf_mes )
|| preg_match("/レスポートサック/", $utf_mes )
|| preg_match("/ロイヤルオーダー/", $utf_mes )
|| preg_match("/ロエベ/", $utf_mes )
|| preg_match("/ロベルタ/", $utf_mes )
|| preg_match("/ロレックス/", $utf_mes )
|| preg_match("/ワコール/", $utf_mes )


もうこれ以上対策に時間を使いたくない!
頼むから、やめてくれ!
| PHP | 01:03 | comments (0) | trackback (0) |
コメント
コメントする




この記事のトラックバックURL
http://kodawari.sakura.ne.jp/blogn/tb.php/516
トラックバック


  
CALENDAR
S M T W T F S
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   
<<   09 - 2021   >>
LOGIN
現在のモード: ゲストモード
USER ID:
PASS:
CATEGORIES
ARCHIVES
COMMENTS
TRACBACK
PROFILE
OTHERS
POWERED BY
POWERED BY
ぶろぐん