エンジニア足立のコーディング日記

エンジニア足立のコーディング日記

RSS お問合せフォームのスパム対策

公開日:2017年10月11日
この記事を読むのに掛る所要時間: 326

お問合せフォームからスパムメールが大量に届くという報告が入りました。

 

スパムメールの内容はこれです。
===========================================================


お名前:注冊送188菜金980856点com加威信v202368
メールアドレス:523564608@qq.com


===========================================================

この内容だけ見ると、

明らかに中国からのスパムのようです。

 

で、念の為にアクセスログを調べてみると、

223.130.xx.xx

というIPアドレスからお問合せフォームへのアクセス履歴が大量に残っていたので、

# curl ipinfo.io/223.130.xx.xx/country

でIPアドレスが割り当てられている国を調べてみると、

「PH(フィリピン)」でした。

 

発信元はフィリピンだけど、送っているのは中国人?

 

ということですかね。
※まさか中国語が堪能なフィリピン人がわざわざ中国人の振りして送っていることもないと思いますし。。。

 

取り合えず、

.htaccessに以下を記述して上記IPアドレスからのアクセスをブロックです。
=============================
order allow,deny
allow from all
deny from 223.130.xx.xx
=============================

 

ただ、

これだけでは根本的な解決にはならないので、

組んだのもかなり前のものですし、

ここは組み直してやることに。
※恥ずかしながら、重要な脆弱性対応が諸々漏れているフォームなので。。。

 

で、重要なのはフォームが辿ってきたルートが正しいかどうかのチェックを入れてやることです。

 

ここは、トークンを発行してユーザーが確認画面から正しく移動してきたかのチェックを行います(CSRF対策)。

 

本当はリファラーチェックも入れてやればより強力にはなるのですが、

諸々の問題で、

今回はそちらは見送ることになりました。

 

それと、

悩むのは「お名前」の入力欄の制限です。

 

「お名前」には「注冊送188菜金980856点com加威信v202368」というように本来は日本人の名前には含まれない半角英数が入っています。

 

なので、

本当は全角文字以外が含まれていればエラーで弾いてやる仕様にしたいのですが、

個人的にはフォームの入力制限に関しては、

ユーザーの離脱を避けるためにもあまり厳しくはしたくないです。

 

ここは悩むところですが、

海外からのお問合せはないという前提(実際にないですし)で半角英数字が含まれていれば弾いてやることにします。

 

あと、画像認証を入れてやるのも対策にはなるかと思います。
※私は、ユーザーの離脱が怖いので、極力入れたくはないですが。

 

因みに、

IPアドレスの割り当て国を調べる際に、

丁度Tera Termを立ち上げていたので、

コマンドラインから

# curl ipinfo.io/IPアドレス/country

と打って調べましたが、

https://ipinfo.io/IPアドレス/country

のURLをブラウザから叩けば国名を返してくれます。

 

さらに、

https://ipinfo.io/IPアドレス/

と叩けば、

もっと詳しい情報を返してくれるので、

何か良く分からないIPアドレスからアクセスがあった場合に、

簡単に情報を調べるのにはとても便利です。

このページのTOPへ戻る

著者情報

足立 拓也(あだち たくや)
1980年生まれ。
出身:兵庫県丹波市。
趣味:ボクシングジム通い。
特技:歴史の話しをすること。
一言:頑張って面白いブログを書きます。

月別アーカイブ

  •  

    • [—]2017 (95)
    • [+]2016 (49)
    • [+]2015 (86)
    • [+]2014 (86)
    • [+]2013 (104)
    • [+]2012 (78)