フォームで起きること
| 起きること | 困ること |
|---|---|
| 宣伝・営業のスパムが大量に届く | 本物の問い合わせが埋もれる。対応の手間が増える |
| 自動返信メールが悪用される | 他人のアドレスを入力され、自社から迷惑メールを送らされる。自社のドメインの評判が落ち、本物のメールが届かなくなる |
| 入力内容が管理画面や通知メールにそのまま表示される | 埋め込まれたコードが動き、管理者のログイン情報が盗まれる(クロスサイトスクリプティング) |
| プラグインや古いプログラムの脆弱性を突かれる | サイトが改ざんされる。入力された個人情報が漏れる |
スパムを減らす方法
| 方法 | 仕組み | 注意点 |
|---|---|---|
| 隠し項目(ハニーポット) | 人には見えない入力欄を置き、そこが埋まっていたら機械の送信とみなす | 利用者の手間はゼロ。単純なボットに強い |
| 送信回数の制限 | 同じ送信元から短時間に何度も送れないようにする | 大量送信を止められる。上限は普通の利用に影響しない程度にする |
| 内容による判定 | 宣伝リンクの有無などから、明らかなスパムをサーバー側で弾く | 厳しすぎると本物の問い合わせまで弾くので、条件は慎重に |
| CAPTCHA(画像認証など) | 人間かどうかを確かめる問題を解かせる | 効果は高いが、利用者の手間が増え、問い合わせが減ることがある |
1 つの方法だけでは、すり抜けるスパムが出てきます。利用者の手間を増やさない方法を組み合わせ、それでも足りない場合に CAPTCHA を検討する、という順番がおすすめです。
自動返信メールを悪用させない
- 自動返信に、入力された本文をそのまま載せない: 載せると、宣伝文を書いた迷惑メールを自社の名前で送らされる
- 送信回数の制限を自動返信にも効かせる: 同じアドレスに何度も送られないようにする
- メールの送信設定(SPF・DKIM・DMARC)を整える: 自社から送るメールが正しいものだと証明でき、届きやすくなる
入力内容を安全に扱う
- 管理画面や通知メールに表示するときは、必ず無害化(エスケープ)する: 記号を文字として表示し、コードとして動かないようにする
- 入力の長さに上限を設ける: 極端に長い入力で、処理を重くさせたり、表示を崩させたりしない
- 保存した個人情報は必要な人だけが見られるようにする: 管理画面のログインは強いパスワードと二段階認証で守る
- WordPress のフォームプラグインは更新を続ける: 古いプラグインの脆弱性は、改ざんや情報漏えいの入り口になりやすい
Co-Craft のフォームでやっていること
このサイトのお問い合わせフォームでは、利用者の手間を増やさないため CAPTCHA は使わず、隠し項目・送信回数の制限・内容による判定を組み合わせています。届いた内容を管理者に知らせるメールでは、入力内容を必ず無害化してから表示しています。判定の詳しい条件は、すり抜けの手がかりになるため公開していません。
ご依頼いただくホームページでも、フォームには同じ考え方で対策を組み込みます。
よくあるご質問
- お問い合わせフォームに営業メールばかり届きます。止められますか?
- 完全に止めるのは難しいですが、隠し項目・送信回数の制限・内容による判定を組み合わせると大きく減らせます。人が手で送ってくる営業は機械的には区別しにくいため、「営業目的の送信はお断りします」とフォームに明記しておくのも有効です。
- CAPTCHA は入れたほうがよいですか?
- 効果は高いものの、利用者の手間が増え、問い合わせが減ることがあります。まずは利用者の手間を増やさない方法を試し、それでも被害が続く場合に検討するのがおすすめです。
- 自動返信メールは送らないほうが安全ですか?
- 受付を知らせる自動返信は、利用者の安心のために役立ちます。入力された本文を載せない、送信回数を制限するなどの対策をすれば、悪用されにくくできます。
- WordPress の Contact Form 7 などは安全ですか?
- 広く使われているプラグインは、脆弱性が見つかっても修正が早い傾向があります。ただし更新しないまま放置すると危険です。WordPress 本体とあわせて、定期的に更新してください。
- フォームから個人情報が漏れたらどうすればよいですか?
- 被害の範囲を確認し、個人情報保護委員会への報告と本人への通知が必要かを判断します。報告が必要な場合は、知ってから 3〜5 日以内の速報が求められます。詳しくは「個人情報が漏れたときの対応」をご覧ください。
1
2
3
4
5
関連ページ
