機能強化(お問い合わせフォーム編)その3

お問い合わせフォームの機能を強化し、いやWordPressのfunction.phpをカスタマイズし、日本語が含まれないメッセージをブロックするギミックを付けて、しばらくの間は英語のスパムメッセージが止まりました。ところが、数ヶ月経つとまた英語のメッセージが届くようになりました。スキームに不備があったのかと、コードを見直してみましたが、その後も英語メッセージは届きます。

ネットのサンプル通りにコードを書いたし、機能的には止まるはずだが。と思い、試しに英語のメッセージを入れようとすると、ちゃんと「日本語で入力してください」というエラーメッセージは出ます。では、なぜ英語メッセージは届くのか?

彼らの送ってくるメッセージを見ると、ある特徴に気付きました。本文は英語なのですが、最後に『お問い合わせ – 旅行貯金入門』なる文字列があるのです。日本語書けというのがバレたかな?でも、日本語入力する環境がなくても、ページから文字列をコピペするぐらいならできる彼らの知能を見くびっていました。

そんな技に気付くとは意外とやるな。しかし、本文がほぼ英語で、しかも決まった文字列を貼り付けるだけなら、その文字列が含まれるメッセージを弾いてやればいいだけです。でもそれだといたちごっこになりそうですね。まあ、今のところ悲しいかなスパムしか来ないので、選別するのはそんなに苦ではないです。でも、もしも今後メッセージが増えてきたらどうしよう。英語だけの(日本語が含まれない)文章を弾くスキームは正常に動作してるので、後は特定ワードで判定するかメーラの学習型フィルタに期待するしかないでしょうか。特定ワードとしては『regards』とか『sincerely』みたいな日本語の文章に絶対登場しないワードですね。

そう言うわけで、お問い合わせフォームの対策は、これにていったん終了としたいと思います。日本語フィルタに代わる画期的な対策が見つかればぜひ試してみたいと思いますが。

機能強化(お問い合わせフォーム編)その2

前回、お問い合わせフォームに届く英語スパムを排除するスキームを紹介しました。ところが、最近その鉄壁の防御(?)を破る英語スパムが送信されるようになりました。トラフィックとしてはそれほどのインパクトはないのですが、一応IT業界に身を置いている者として看過できませんので、少しスキームを見直すことにしました。

と言っても、ししょーはWebデザイナとかそういう類いの者ではありませんので、またしても他所からのコピペになってしまいますが、一部コードを修正しました。一応、function.phpをいじればいいという考え方ですが(このサイトはWordPressで構築しております)、ちょっとコードを変更しました。何が正しいのか、何が効果的なのかイマイチ分かってないので、相変わらず手探りなんですけど、しばらくはこれで様子を見たいと思います。

お問い合わせフォームに来るスパムメッセージなんてどうでもいい物売りが多いんですけど、無視できるレベルでありながらナメられるのもどうかなと思いまして。ただ、前にも書きましたけど、一般的なスパムメールはフィルタリングできるのですが、お問い合わせフォームからのメールは自分からの発信という形なのでフィルタリングできないんですね。

実害はないにせよ、あくまで気持ちの問題です。あまりスパムメッセージの侵入を許すと、いろいろ厄介なことになりかねない、そんな程度の気持ちです。

基本はあくまで日本語(ひらがな)が含まれないメッセージのフィルタリングです。CAPTCHAみたいな面倒くさいものを使わないための方策なんですが、もしダメなら最悪はCAPTCHAの導入もあるかもしれません。それは(ししょーも含めて)面倒くさいので極力避けたいのですが。。。