ヒロとシーのゆうゆうシニアライフ(TOP)  > フォームメールでスパムメール対策


  フォームメールでスパムメール対策  


(2006年8月)
 スパムメール対策としてホームページに公開するメールアドレスをエンティティ表記にしてから、少しはスパムメールが少なくなっていたのですが(私のパソコンのセキュリティ対策に 記載)、6ヶ月も過ぎるとまたまた多くなってきました。名簿業者はWebを自動巡回してメールアドレス収集ツールででホームページに公開されているアドレスを自動収集するのだそうですが、このツールが改善(改悪?)されエンティティ表記も解読できるようになっているのかもしれません。
 また、例えばmailto:abc@yahoo.co.jpのメールアドレスをエンティティ表記にして、mailto:abc%40%79a%68o%6F
.co%2e%6a%70 のように記載していたとしても、メールの送信操作をすればメールソフトの送信先蘭にabc@yahoo.co.jpがそのまま見えるのだから、簡単にメールアドレスがわかってしまいます。私のメールアドレスも名簿業者のリストで広まってしまったのか、スパムメールが毎日20通ぐらいは来るようになってしまいました。もっとも、中には毎日100通ぐらい来るという人もいるけれど・・・ 
 結局、本意ではないけれど、ホームページ上でメールアドレスが見えないようにするため、下図のようなフォームメールに変更したので紹介します。



NIFTYのフォームメール(メールデコード)。
 フォームメールには無料レンタルのフォームメールやフリーのメールソフトがあるようなので、少し調べてみました。無料レンタルは広告が付き、フリーのメールソフトはサーバのSendmail 機能を使っているものが多いようです。私が契約しているプロバイダのNIFTYでは、Sendmailをサポートしていません。また、大体がCGIを使用するのでサーバの設定(パーミッションの設定など)が複雑だし、サーバとの相性もあります。そこで、やはり一番安全で確実なNIFTY自身が提供しているフォームメール(NIFTYではメールデコードと呼んでいる)を使用することにしました。

HTMLのソースファイルを見るとメールアドレスがわかってしまう。
 NIFTYのメールデコードでは、HTMLでかなり自由にメールのフォームを変更することが出来ます。これはいいのですが、送信先のメールアドレスも下記のようにHTMLで設定するようになっています。

<INPUT TYPE="hidden" NAME="to_mail" VALUE="送信先メールアドレス”>

これではブラウザでソースファイルを表示させれば間単にメールアドレスが見えてしまうし、メールアドレス収集ツールでも簡単に収集されてしまいそうです。もっとも、NIFTYのメールデコードはアンケート調査などのフォーム様式を自由に作るのが主目的で、メールアドレスを隠すのが目的ではないのでしょうからNIFTYに文句をいってもしょうがないか。

送信先メールアドレスの記載部分をJavaScript で記載する。
 送信先メールアドレスをブラウザで見えないようにすればよいのですから、対策としてこの部分をJavaScriptで記載し、しかも外部ファイルにしてサーバー内に保管するようにしました。ブラウザでみたソースファイルは以下のようになっています。

<SCRIPT type="text/javascript" src="address.js"></SCRIPT>
<NOSCRIPT><FONT color="#ff0000"><B>ブラウザのアクティブスクリプトの設定が無効になっているので、メールの送信が出来ません。<BR>
</B></FONT></NOSCRIPT>

実際のメールアドレスはaddress.js という外部ファイルに記載しており、これをサーバー内に保管しているのでユーザからは直接的には見えません。
しかし、少しパソコンのわかる人なら間単にaddress.jsを探して中身を調べることが出来ますから、相手がその気になればすぐに見つかってしまいます。
私がメールアドレスを隠したいのは悪意のある名簿業者に対してであって、一般のホームページ訪問者にはメールアドレスを表示すべきだと思っているのでこれで十分です。
空き巣に入られ難くするには、鍵を二重三重にして手間がかかるようにするとよいといわれていますが、これもその類だと思っています。
メールを頂いたホームページの訪問者に対しては、当然ですが実メールアドレスを記載した御礼メールを返信するようにしています。

気休めかも知れませんが、外部ファイルの中のアドレスの記載も、アドレスをそのまま記載するのではなく、アドレスを小分けにして一見してわかりにくいように記載しました。

var domain="yahoo.co.jp"
document.write('<INPUT type="hidden"');
document.write('name="to_mail"');
document.write('value='+'"ab'+'cd'+'&#64;'+domain+'">');

赤字のアドレスの部分は、value=abcd@yahoo.co.jp を書き換えたものです。&#64は@をエンティティ表記にしたものです。
これらの部分を外部ファイルにしなくても、そのままHTMLファイルの中に記載しておいても、メールアドレス収集ツールに検索されることは少ないかもしれません。JavaScriptを解読してメールアドレスを抽出する機能までは多分入っていないでしょうから。


ホームページのアクセスビりティが悪くなる。
 HTMLファイルの一部にJavaScriptを使用したため、ホームページの訪問者がブラウザの設定でJavaScriptを無効にしていると、このメールデコードは送信先を認識できないので送信できません。結果としてホームページのアクセスビリティは悪くなるのですが仕方がありません。改善策としてJavaScriptを無効に設定している場合は、下図のようにエラーメッセージを表示するとともに、送信ボタンを表示しないようにしました。



なお、JavaScriptの有効、無効の設定は、ブラウザがインターネットイクスプローラの場合、オプションのセキュリティ設定のアクティブスクリプト部分が該当します。



ホームページに公開するメールアドレスは、フリーメールを使用。
  メールアドレスを名簿業者から完全に保護することはできないので、ホームページで使用するメールアドレスは原則通りフリーメールを使用し、簡単に変更できるようにしています。

(おわり)


   ヒロとシーのゆうゆうシニアライフ(TOP)  > フォームメールでスパムメール対策