問い合わせフォームのスパム対策
問い合わせフォームに来る大量のスパムは、一枚の対策では止まりません。入力の検証・ハニーポット・送信制限を重ねる——顧客サイトで実際にやっている多層のスパム対策を実務目線で書きました。
本物の問い合わせが、大量の迷惑メールに埋もれて見えなくなる。スパム対策は、機会損失を防ぐ仕事です。
うちは社長 1 名と AI(COO 役の Claude Code)だけの一人会社で、 複数社ぶんの WordPress サイトを受託で預かっています。
問い合わせフォームを置くと、必ずスパムが来ます。 機械が自動で送りつけてくる、宣伝や怪しいリンクの束です。 放っておくと、本物の問い合わせがその山に埋もれて見落とされる。これは、地味だけれど確実な機会損失です。
一枚の対策では止まりません。私たちが顧客サイトで実際にやっている、 複数を重ねる「多層」のスパム対策を書きます。
🧱一枚岩では守れない — 「多層」で考える
どの対策にも、すり抜けがあります。だから一つに賭けず、性質の違う対策を重ねて、すり抜けを互いに補い合わせます。
スパム対策で最初に捨てたい幻想が、「これさえ入れれば完璧」という一枚岩です。 どんな対策にも、必ずすり抜けがあります。だから発想を変えて、性質の違う対策を何枚か重ねる。一枚を突破されても、次の一枚で止める。これが多層の考え方です。
自動化された攻撃には、こうした重ね方が有効だと整理されています(OWASP Automated Threats to Web Applications)。私たちが顧客サイトでやっているのも、特別な魔法ではありません。 地味な対策を、いくつか丁寧に積んでいるだけです。順番に紹介します。
✅一枚目 — 入力の検証で「ありえない送信」を弾く
まず、フォームの中身が筋の通ったものかを確かめます。人が普通に書けばあり得ない内容を、入口で落とします。
一枚目は、送られてきた中身がまともかを確かめる、入力の検証です。 メールアドレスの形になっているか。必須の欄が埋まっているか。 本文にリンクが不自然に大量に貼られていないか。 こうした「人が普通に書けばあり得ない形」を入口で落とす。これだけで、雑なスパムのかなりが弾けます。
大事なのは、本物のお客さんを巻き込まない加減です。厳しくしすぎると、正しく書いた人まで弾いてしまう。 スパムを止めることと、本物を通すこと。この綱引きの中で、 入口の検証は「明らかにおかしいものだけ」を落とす一枚目にとどめています。
🍯二枚目 — ハニーポットで「機械だけ」を釣る
人には見えない“おとりの欄”を仕込みます。そこに何か書いてあれば、書いたのは機械。人の手間を増やさず機械だけ落とせます。
二枚目が、私が気に入っている手です。ハニーポット(おとり)と呼びます。 フォームの中に、人の目には見えない、空っぽのはずの欄を一つ仕込んでおきます。人は見えないので触りません。 でも、機械は片っ端から欄を埋めようとするので、その欄にも文字を入れてしまう。
つまり、その欄に何か書いてあったら、送ったのは機械だと分かる。あとは静かに捨てるだけです。この手のいいところは、 本物のお客さんに一切の手間をかけないこと。画像の文字を読ませたり、パズルを解かせたりする必要がありません。 人にやさしく、機械にだけ効く。だから多層の中でも早めに置いています。
一つ、正直な注意も書いておきます。おとりの欄は、隠し方が甘いと自動入力の補助機能が善意で埋めてしまうことがあります。人が使っている入力補助が、見えない欄にも文字を入れてしまうと、 本物のお客さんを機械と誤判定しかねない。だから、この欄は 「入力補助にも触られない形」で隠すよう気をつけています。 対策は、入れて満足せず——本物を巻き込んでいないかまで見て、はじめて一枚として数えます。
🚦三枚目 — 送信の頻度と、必要なら人間確認
同じ相手が短時間に連打してくるなら、それは機械のふるまいです。頻度で抑え、それでも止まらなければ人間確認を足します。
三枚目は、送信の頻度を見ることです。人は、同じフォームを 一瞬のうちに何度も送りません。でも機械はやります。だから短い時間に何度も送ってくる相手には、少し待ってもらう。これで、連打してくるタイプの自動送信を抑えられます。
それでも止まらないほどしつこいサイトには、最後の一枚として人間かどうかの確認(チェックを入れてもらう類のもの)を足します。ただしこれは、 本物のお客さんにも手間をかけるので、前の一枚で足りるなら足さない。対策は、強ければいいわけではありません。お客さんの負担と、 防ぎたい量。そのバランスで、どこまで重ねるかを決めています。
🧭今日から足せる一枚
全部を一度に入れなくていい。まずは「本物を邪魔しない一枚」から。ハニーポットは、その最初の一歩に向いています。
もし今、フォームに来るスパムに困っているなら、 全部を一度に入れようとしなくて大丈夫です。多層は、一枚ずつ足していけるもの。まず一枚、と考えるなら、本物のお客さんに手間をかけない ハニーポットあたりが始めやすいと思います。
そして、対策を入れたら本物の問い合わせがちゃんと届くかを、自分でテスト送信して確かめる。スパムを止めることばかりに気を取られて、 本物まで止めていた——これがいちばん怖い失敗です。実物で確かめるまで、 「対策できた」と言わない。私たちが受託で守っている姿勢です。
あなたのサイトのフォームは、本物の声を、ちゃんと拾えていますか。 スパムの山に埋もれさせていないか——今日、一度テスト送信してみてください。
開発パートナーを探していますか?
AIでプロダクトを最速で形にしませんか?
最短1週間でMVPを開発。アイデアの検証から本番リリースまで、i-Willinkがフルサポートします。まずはお気軽にご相談ください。
無料で相談する