にしし ふぁくとりー(西村文宏 個人サイト)

Presented by Nishishi via Movable Type. Last Updated: 2015/09/22. 13:24:03.

英文のみで構成される投稿をブロックする

BBSなどへのスパム投稿は、最近は日本語のものもかなり多いのですけど、英語のスパムも結構来ます。
英文で投稿される可能性のあるBBSでは使えませんが、そうではないBBSなら、「英文だけで構成される投稿はスパム」と決めちゃってもいいと思います。

というわけで、私が運営する一部のBBSに、以下のソースコードを加えて、「英文だけの投稿」はできなくしてみました。

if ($com =~ m|^[\w\d\s\n\.\!\?\-\*\+\'\$\"\(\)\[\]\&:;]+$| ) {
&error("スパム対策のため英文だけのコメントは投稿できません。");
}

変数$comに、投稿本文が入ってます。
正規表現を使って、本文中に英文しかない場合は、エラーメッセージを出すようにしています。(関数errorは、引数の文字列をブラウザに表示させて終了する関数です。)

上記の正規表現の場合、「英字(\w)」「数字(\d)」「スペース(\s)」「改行(\n)」と、記号!?-*+'$":;&とカッコをチェックしています。これらの文字のみで構成されている場合には、if文が成立するので、エラーメッセージを吐きます。
これらの文字以外の文字が含まれていれば、if文は成立しないので、投稿処理が行われます。

# …1バイト文字の記号にだけマッチする書き方ってなんかあったっけ?(^^;;;
# 記号を列挙するしかなかったっけなあ?

まあでも、これでたいていの英文投稿は禁止できるんじゃないかと思います。
問題は、スパム投稿ではない英文の投稿も阻止しちゃうことですが。^^;

逆に、「ひらがなが含まれていなければブロック」のような判定にしてもいいと思いますけどね。日本文の投稿で、ひらがなが1文字も含まれないという可能性はあんまりないでしょうから。

コメント

英文だけの投稿はキックする方法は無駄と思いますよ。
自分の知っている掲示板《※すでに機能停止してる》
では
一行の日本語の後ろにURLの羅列が書かれた
英文スパム投稿の亜種が出ていました。

投稿者 放浪者 : 2007年01月04日 23:23

放浪者さん、どうもです。
確かに、「そういうのがブロックされる」という事実さえ分かってしまえば、適当な日本語の文字列を含めればいいということくらい、誰でも思いつきますもんね。^^;
そのうちこの方法も使えなくなるだろうなとは思ってました。
こういうのは、イタチごっこなんでしょうねえ…。
今後は、日本語が含まれる割合とかを計算しないといけなくなるんでしょうかね…。^^;;;

投稿者 にしし : 2007年01月05日 02:09

100件表示できる掲示板に、1分おきに100件の投稿があり
過去の大切な投稿が全部消えてしまいました。
やっとたどりついた貴サイト、これで収まればいいなと思います。
ありがとうございました。

追伸。私の掲示板では↑のソースコードそのままでは通用しなかったので、前後に合わせて書き直したらOKでした。if ($in{'com'} =~ ・・・です。(^^ゞ

投稿者 元気おばさん : 2010年04月13日 02:24

実験した時は成功だったのに、またスパム投稿が何10件もあり、掲示板を閉鎖しました。(-.-)

投稿者 元気おばさん : 2010年04月13日 08:37

コメント数: 4件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。

保存しますか?



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

※投稿内容は、実際にページ上に掲載される前に、管理者によって確認される設定にしている場合があります。その場合は、投稿後にその旨が表示されます。たいてい1~2日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

トラックバック

このエントリーへのトラックバックURLを表示するにはここをクリック
※スパム防止のため、トラックバックURLは別ウインドウで表示します。(JavaScriptが有効でないと表示されません。)

--- 当サイト内を検索 ---