スパム対策としてメール設定とIPアドレスを限定した話【追記あり】
![スパム対策としてメール設定とIPアドレスを限定した話【追記あり】](https://mashiro-mirise.com/wp-content/uploads/2021/08/blog-spam-1.png)
弊社のホームページはワードプレスを使用しメールに関してはプラグインの「Contact form 7」を使用しています。
このプラグインは世界的にも有名なため悪いことをしようとする人たちも少なくはありません。そのため何も設定していないところにはスパムメールや営業メールがわんさか届きます。
中には登録した覚えのないのにも関わらず「配信解除はこちらから」というような内容のメールも届くためストレスを感じスパムの対策を考えておりました。
このプラグインを拡張してステップ式のお問合せフォームを作成しデザインの変更とスパムメールの対策を行っていきます。
また、グローバルの集客は今のところ考えておらずスパムの原因を根こそぎ潰すため、日本国内だけのIPアドレスだけアクセス出来るようにして海外からのアクセスを拒否する設定を行っていきます。
Contact form 7の設定
すでにプラグインを使っていることを想定して記載していきます。
新規プラグインの取得・設定
新規プラグインから「Contact Form 7 Multi-Step Forms」と検索して今すぐインストールを行った後にプラグインを有効化します。
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-1.png)
インストール後はContact form 7に新しくボタンが追加されています。
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-2-1024x576.png)
記入画面確認ページ用のメールフォームを作成
Contact form 7より新規作成でフォームの追加をします。
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-3-1024x576.png)
後から管理しやすいように「確認画面ページ」と名前を付けています。
既存で設定していたContact form 7の内容をマルっとそのままコピーしておきます。
固定ページの追加
今回の場合は3ページでお問合せフォームを構成(入力画面・確認画面・サンキュー画面)していきますので新しく確認画面用のページとサンキュー画面を作っていきます。
固定ページの新規作成から名前とスラッグを決めて保存をしておきます。
コードの編集
まずは既存で動かしていたフォームを少し編集していきます。
送信ボタンにあたる[submit "送信"]が下部にあると思いますがこれを [submit "次へ"]に変更し、続けて次の行に拡張プラグインから追加された 「multistep」を押してコードを追加します。
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-4-1024x576.png)
コードを追加の際は英文で分かりにくいですがざっと説明すると…
- 名前…コード名(任意に変更可能)
- First Step…初めのステップならチェックを入れる
- Last Step…最後のステップならチェックを入れる
- Send Email…このステップでメールを送る
- Skip Save…データベースを残す(フラミンゴなどの顧客管理を行っている場合など)
- Next Page URL…移行先のURL
となります。
既存であったお問合せフォームは最初のステップになりますので「First Step」にチェックを入れ、「Next Page URL」に確認画面用のスラッグ(URL)に移動できるように記載します。
記載が終わったらコードを埋め込み確認画面用のページ設定に移動します。
確認画面では「Last Step」と「Send Email」にチェックを入れサンキュー画面に向かうように指示をしてコードを挿入します。
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-5-1024x576.png)
それに加え入力した画面が確認画面として表示できるように先ほどマルっとコピーしたコードを少し編集します。
Contact form 7の通常のコードは[text your-name]などになりますがその中身を[multiform 'your-name']に変えていきましょう。
他の箇所にも同じように記載していき保存を行います。
続けてフォームを表示させるため作成した固定ページにContact form 7のショートコードを直接記載していくかワードプレスのテンプレートにショートコードを入れるコードを記載していきましょう。
弊社ではテンプレートにショートコード埋め込んでおりますのでその方法もご紹介いたします。
下記の「do_shortcode()」がショートコードが入れられるコードになります。
<?php echo do_shortcode('エラー: コンタクトフォームが見つかりません。
');?>
テンプレートに記載の際はif文でContact Formの分岐をして入力・確認・サンキューと画面を表示していけます。
もちろん、固定ページからでも出来ますので出力の方法はお任せいたします。
出来ました
入力ページ
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-6-1024x576.png)
確認ページ
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-7-1024x576.png)
サンキューページ
![](https://mashiro-mirise.com/wp-content/uploads/2021/08/spam-1-8-1024x576.png)
参照ページ
フォーム部分…長いフォームをステップ分割できるContact Form 7 Multi-Step Formsの導入方法
ステップバー…[パーツ]ナビゲーション コンパクトなステップ表示 バータイプ2
国内だけのアクセス制限方法
ワードプレスをお使いの際はサーバーの一番上にある階層の「.htaccess」ファイルを操作します。
編集はサーバーにログイン後に編集することが出来ますが操作を間違えると表示がおかしくなる可能性もあります。
編集の際は元のコードをバックアップすることを推奨します。
基本手にはコピー&ペーストでサクッと編集ができますのでお試しを。
内容は下記のサイトを参考にさせていただきました。
海外からのアクセス(IP)を拒否する方法と注意点【.htaccess】
コードを記載の際は「# BEGIN WordPress」の上に記載するようにしてください。
### 検索エンジンをまとめて許可するためにenv化する(Must)
### 検索エンジンbot参考)https://www.casis-iss.org/ex1911/
SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "bingbot" allowbot
SetEnvIf User-Agent "Slurp" allowbot
### いったん全てを拒否する (Must)
order deny,allow
deny from all
### 検索エンジンからのアクセスを許可 (Must)
allow from env=allowbot
### SearchConsoleのプロパティが確認出来るためにの対策 (任意)
### 参考)https://support.google.com/webmasters/answer/80553?hl=ja
allow from googlebot.com
allow from google.com
### 日本国内のIPを許可 (Must)
### 国内IP取得先)http://www.cgis.biz/tools/access/
allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
allow from 1.5.0.0/16
allow from 1.21.0.0/16
( 中略 )
allow from 223.223.164.0/22
allow from 223.223.208.0/21
allow from 223.223.224.0/19
allow from 223.252.64.0/19
allow from 223.252.112.0/20
となります。
プラスでコードを追加していきます。
allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
allow from 1.5.0.0/16
allow from 1.21.0.0/16
( 中略 )
allow from 223.223.164.0/22
allow from 223.223.208.0/21
allow from 223.223.224.0/19
allow from 223.252.64.0/19
allow from 223.252.112.0/20
にあたる箇所を「IPアドレスで日本国外(海外/外国)からのアクセスを制限する.htaccess CGI's」の「.htaccessダウンロード」からダウンロードを行いメモ帳などで確認をします。
ひたすらIPアドレスが記載されているので中身をコピーして編集元の「 .htaccess 」にペーストし保存をします。
海外のIPアドレスからのサイトチェックは「WebPagetest」にアクセスしてURLを記入し403エラーが表示されたら設定完了です。
この配布されているIPアドレスはほぼ毎日更新しているとのことですが弊社では1年に一回更新していこうと思っています。
以上、スパム対策のメール設定と日本国内だけのIPアドレスだけを制限する方法でした。
追記:この方法をするとSNSのブログカードが表示されない問題がありましたので、IPアドレスの設定は元に戻して別の方法を調べてから再度記載するようにいたします。