問い合わせプラグインの「Contact Form 7」にIP規制をかける方法の紹介です。
長くサイトをやっていると、いろいろとおかしなメールが来ることもあるかもしれません。それが、2、3度ならまだしも、何度も来ると、参ってしまうこともあるかもしれません。
そういった場合は、Twitterのブロックのような感じで、IPに制限をかけメールを届かないようにすると、一定の効果はあると思います。(相手が固定IPの場合)
ただ、デフォルトの状態のContact Form 7では、IPを制限できる設定にはなっていません。というのも、送られてくるメールにIP情報が載っていないからです。
なので今回は、Contact Form 7から送られてくるメールにIP情報を掲載する方法と、その情報からIP制限をかける方法を紹介します。
photo by Debarshi Ray
目次
フォームから送信されるメールにIP情報を含める
Contact Form 7デフォルトの状態では、フォームから送られてくるメールに、IP情報は掲載されません。
IP情報がわからないと、制限をかけられないので、掲載されるように設定します。
デフォルトのメッセージ本文
Contact Form 7のデフォルトの設定で、問い合わせフォームを作成すると、送信用の「メッセージ本文」フォーマットは、以下のようになっています。
差出人: [your-name] <[your-email]>
題名: [your-subject]メッセージ本文:
[your-message]—
このメールは 寝ログ (https://nelog.jp のお問い合わせフォームから送信されました
IP情報を掲載したメッセージ本文
今回は、上記のフォーマットに、「IP情報」と「ユーザーエージェント(ブラウザ情報)」を付加したものにしたいと思います。
以下がその設定例です。
差出人: [your-name] <[your-email]>
題名: [your-subject]
IP:[_remote_ip]
UA:[_user_agent]メッセージ本文:
[your-message]—
このメールは 寝ログ (https://nelog.jp のお問い合わせフォームから送信されました
太字部分が、付け加えた設定です。「IP情報」と「User Agent情報」が、送られてくるメールに追加されます。
送られてきたメールは、以下のようになります。
IPや、User Agent情報以外にも、Contact Formでは、いろいろなメールタグを使って情報を付加することができます。
Contact Form 7にIP制限をかける方法
上記の設定を行い、おかしなメールが来た時は、毎回IPをチェックします。
毎回、同じIPから届くようなら、そのIPを規制します。
IPを規制する設定をするには、Wordpressに元からあるコメントブラックリスト機能を利用します。
コメントブラックリストは元々、WordPressのコメント用の機能ですが、Contact Form 7 もブラックリストを使って特定の単語や IP アドレスを弾くことができるようになっています。
コメントブラックリスト機能でIP制限
この機能で、IP制限をかけるのは簡単です。
まずは、Wordpress管理画面にログインします。
管理画面のメニューから「設定→ディスカッション」を選択します。
すると、「ディスカッション設定」画面が表示されるので、その中の「コメントブラックリスト」の項目を設定します。
コメントブラックリストの設定は、以下のように行います。
メールに掲載されていた、IPを1行に1つとなるように入力ボックスに記入します。
あとは、「変更を保存」ボタンを押せばOKです。
まとめ
幸い僕は、まだこの機能を利用してはいません。
先日、おかしなメールが何度か届いたので、メールにIP情報が載るようにして、「次来たら設定しようか、どうしようか」と思っていたのですが、以来来なかったのでそのままです。でもできれば規制とかをしたくないのでよかったです。
とりあえず、規制はさておき、「もし、おかしなメールが届きだしたときのため」に、Contact Form 7の送信メールフォーマットに、IP情報を掲載する設定にだけは、しておいても良いかもしれません。