espar form のスパム対策
espar form を導入することで、スパムの多くを削減する事ができます。
問い合わせフォームにスパムが届く理由
そもそも問い合わせフォームから届くスパムは、サーバに設置したメール送信PHPプログラムを突かれることで発生します。WordPress プラグインやメールフォームプログラムは、ソースが公開されているため「どこを突くとメールが送れるのか」を簡単に把握する事ができます。
たとえ <form> の action 属性が「空」であっても、どこを叩くと何がどのように実行されるか、悪意ある第三者は全てお見通しです。オープンソースなプログラムを使う以上、この状態から逃れる事はできません。
『攻撃者が、メール送信のPHPプログラムの在りかを特定し、外部から連続で叩く』
これがメールフォームにスパムが多い根本的な原因です。
espar form のスパム対策
espar form では「なぜスパムが送られるのか」を理解した上であらゆる対策を施しています。動作原理や攻撃手法を把握せず構築された WordPress サイト等とはこの点が異なります。
対策1 : メール送信プログラムの場所を隠蔽
espar form ではメール送信処理を弊社サーバで行いますが、どのように突けばスパムが送れるのかは容易には分かりません。
オープンソースではありませんし、form タグの action 属性にヒントがあるわけでもないからです。どこを突けばスパムが送れるか攻撃者は知る由もありませんから、突く場所が分からない以上、スパムを送りつけることは事実上不可能です。
対策2 : HTMLのform仕様とは異なる独自仕様
仮に解析されて、espar form がどのサーバで処理をしているかが分かったとしましょう。しかしサーバが分かったところで、どのようにサーバを叩けばメール送信ができるかまでは分かりません。
一般的な PHP プログラムを使った form では、どのような叩き方をするとメールを送れるかは HTML の仕様上ある程度決まっています。そして、サーバとはそのフォームがあるサーバです。
サーバは自明で、かつ、メール処理を発動させる呼び方はHTML仕様で決まっている。これでスパムが届かないほうがおかしいというものです。だから PHP による問い合わせフォームはスパムが絶えないのです。
しかし espar form は、HTML の form 送信仕様とは全く関係のない暗号化を前提とする独自仕様でサーバと通信しています。弊社の秘匿技術文書を見ない限り、メール送信処理を行う espar form のサーバと通信する方法は分かりません。
対策3 : 送信元を制限する機構
仮に espar form サーバとの独自通信仕様が解析されたとしましょう。では、攻撃者は自前のサーバから espar form サーバに通信を行えるでしょうか?
いいえ。
espar form では、espar form が設置されたページ上から送られた通信でなければ一切応答ができない機構を備えています。仮に https://www.example.com/ のサイト上に設置された espar form があるとすれば、攻撃者が自前のサーバを用意したところでそのサーバは https://www.example.com/ のサイトではないため、espar form のサーバは全ての通信を拒否します。
では、攻撃者が https://www.example.com/ のサイトを詐称できるとしたらどうでしょうか?通常 https サイトを詐称するには以下が必要となり容易ではありません。
- www.example.com の証明書の不正な取得
- 上記の為に example.com ドメインの所有か不正な奪取
- またはDNSレコード設定の権限や www.example.com サーバに対する scp, sftp, ssh 権限の奪取
対策4 : 独自のトークン機構
espar form の独自通信仕様では、トークンが重要な役割を担っています。トークンとは、espar form が発行する「メール送信権限」を意味するデジタルデータで、これを特別な処理をした上でサーバと通信しなければメール送信処理は発動しません。
また、トークンは短時間で破棄・再発行されます。仮に、espar form を設置しているページを解析してトークンを調べても、スパム送信する頃には当該トークンは無効となっています。
対策5 : 連続送信の拒否機構
仮にトークンを取得され特別な処理も暴かれ、それを短期間で行われたとしても、心配はいりません。
espar form では、これら防御機構が破られてスパム送信攻撃を受けたとしても、管理画面上で連続送信制限ができるようになっています。際限なくスパムが連続的に届き続けることはありません。
以上から、espar form の導入サイトでスパムメールを送ろうと思えば、攻撃者は以下をクリアしなければならないことが分かります。
- espar form のサーバのありかを調べる
- espar form のサーバとの独自通信仕様を調べる
- espar form のサーバと通信許可を与えられたサイトであることを詐称する
- espar form のサーバが発行するトークンを横取りする
- espar form のトークンに行われる特別な処理を解析する
- espar form のトークン有効時間がきれるまでに処理を行う
全てクリアしなければ espar form でスパム送信はできません。しかもこれら全てを破られても、連続送信を制限する機構を備えています。このように、espar form は現存のスパムメール攻撃に耐性を持っています。
スパムフィルタでスパムを防ぐという戦略ではなく、そもそもスパムを理屈上送れない仕組みとしていることが espar form の特徴です。無論、espar form を正しく設置することが前提条件となります。設置の仕方については本マニュアルや弊社担当からのサポートが受けられます。