もともとはこのブログにもコメントを投稿できたのですが、思った以上にスパムが多くて閉鎖していたのでした。
このブログの機能を色々と追加 (2014年2月)
ブログのコメントについて(2013年8月)
この度、簡単なスパム対策を施したので改めてコメント欄を復活させました。
***
以前は、CAPTCHAという画像上の文字を入力させるスパム対策を入れようとして、いろいろうまくいかず挫折したのでした。
スパムコメントが海外botからの英文字+URLだけのものだけだったので、そこだけ対策できれば良いということで今回のスパム対策をしました。
スパム対策で下記のページを参考にしました。
【Rails】ひらがな入力を必須にして海外スパムボットによるお問い合わせフォーム送信を禁止する
入力フォームのお問い合わせ本文に「ひらがなの入力を必須にする」というバリデーションを付けただけです。日本人がメッセージを送る場合は、普通ひらがなが最低1文字は含まれるはずです。
それをひっくり返せば、海外スパムボットによるメッセージを禁止するバリデーションルールが作れます。このバリデーションはコードで書くとわずか一行です。
validates :text, presence: true, format: { with: /\p{Hiragana}/, \
message: 'には日本語を含めてください。(Text must contain hiragana.)' }
こうすると、冒頭で紹介したようなスパムボットのメッセージはバリデーションエラーになります。
シンプルに、コメントに「ひらがな」が含まれていないコメントは投稿できないというもの。日本語で書いているブログなので、読む人もコメントをする人も日本語ができる前提と考えれば大丈夫でしょう。一応、英語の投稿エラーには、ひらがなをコピペするように説明を加えておきました。
ちなみに、参考にした記事は2017年1月とけっこう新しいのですが、自分が動かしているRails3という古い環境でも同じ変更だけで問題なく動きました。
ということで、コメント欄を開いたので何かコメントを残していってください。