2013,01,15, Tuesday
最近「モンクレール」「MONCLER」というブランド名のコメントスパムが多い。
前回は文章が英語のみのコメントを省いていましたが、今回は日本語の挨拶を混ぜてくる。
しかも投稿される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関数用に加工。
具体的には、下記のような感じです。
もうこれ以上対策に時間を使いたくない!
頼むから、やめてくれ!
前回は文章が英語のみのコメントを省いていましたが、今回は日本語の挨拶を混ぜてくる。
今日は~^^またブログ覗かせていただきました。よろしくお願いします。
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 )
もうこれ以上対策に時間を使いたくない!
頼むから、やめてくれ!
コメント
コメントする
コメント受付を停止します。海外からスパム投稿が多いため。
この記事のトラックバックURL
http://kodawari.sakura.ne.jp/blogn/tb.php/516
トラックバック
Tweet |
TOP PAGE △