海外からお問い合わせフォームへの波状攻撃を一律全部で良いので【至急】防ぎたい
先日、お客様から「お問い合わせフォームに海外のユーザーからスパム投稿が一日何百件も来て困っている。そもそも海外からの問い合わせなどは想定していないし、何とかならないだろうか」という御相談を受けました。
そこで手っ取り早いご提案として差し上げたのが「海外からのアクセスを全部ブロックする」という方法です。
これを時点するためにはアクセスしてくるIPアドレスを確認して、海外のIPアドレスであればブロックする、という方法が一番シンプルです。では、海外からの固定IPを判定するにはどうしたらいいのでしょう?
弊社では次のように実装処理しています。
海外のIPをブロックする仕組み(応急措置)
各国の固定IPを判定できるサイトの情報を利用し、そこからサーバ用の設定ファイルを一定間隔でダウンロードし、サーバ内に設置します。そして後は判定処理をして、固定IPであればサイトを表示しない、という処理を行っています。これで「ほとんど」(完璧ではない)の海外IPをはじくことが出来ます。
海外のIPアドレスを判定するには弊社ではここのサイトからデータを活用しています。このサイトはもう10年以上前から運営されており、データはレジストリから毎日自動取得しており、サーバ設定用のファイルまで生成してくれる、大変便利で信頼出来るサイトです。
緊急時の場合は、まずこのリストを使えば即時不正なアクセスを遮断する事が出来ます。
これが応急処置になります。
海外のIPをブロックする仕組み(恒久的措置)
このサイトの注意点は「無保証」なことです。また何かの表示でデータに何らかの不都合が起こる場合があると明記されています。
なので弊社では海外IPをブロックするのに以下の様な実装開発をする事によってそのリスクを回避しています。
まずこのサイトから毎日海外IPが記載されているサーバ設定ファイルをダウンロードしています。通常はそれを既存ファイルに上書き更新をかける訳です。
しかし、これだけでは知恵がたりませんし、誰でも出来ます。
弊社では更に更新をかける前に、このダウンロードした設定ファイルの中身を自動チェックをかけ、記載されている行数が数行しかなかった場合、設定ファイル自体に何か異常は起こったと見なし、いったん上書きを駐め、担当者にメールでアラートを送る仕様としています。
これによって何か本当に異常が起きた場合(ちなみに今まで数年間ほとんど起きた記憶はありません)、いち早く検知対処をする故知が出来ます。
弊社ではこの仕様は勿論お客様から直接ご指示を頂いたのではなく、仕様検討をしていく中で仕様のアイデアを思いつき、ご提案ご了承頂いた上で実装いたしました。
このような言われなくても考えご提案出来るのが弊社の強みだと思っています。