WhiteBOX設定編/(17)メールフォームの導入

Last-modified: 2008-06-30 (月) 15:55:33 (5799d)

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

  • 管理者宛のメールアドレスにスパムメールが押し寄せるようになってウザくてたまりません。
  • あれこれ対応策を試みてますが、その経過状況です。 まだまだ続くヌカルミぞ(^^;)

導入の動機はSPAMメール対策

  • ホームページ開設時から管理者宛の連絡先として、メールアドレスをトップページに掲載していました。メールアドレス自体は、当初はプロバイダのアカウントでしたが、メールサーバを立ち上げてからは、sysop@kurarinet.com となっていました。
  • html文に、以下のように記述しておけば、クリックするだけでOutlook Expressが宛先入りで立ち上がるわけで、本来は便利な機能です。
    ■連絡先 <IMG height=24 src="mail.gif" > <a href="mailto:sysop@kurarinet.com"><B>sysop</B></A>
     mailto.jpg
  • 近年スパムメールが急増し、困り果てて、メールアドレスを変更する人も少なくありません。
  • サーバ管理者のメールも例外ではありません。まして、公開のホームページで堂々とメールアドレスをさらしてるわけですから、狙われないはずがありません。昨年の夏ごろから、急増しています。
  • メールアドレスの収集にはいろんな手があると思いますが、ロボットがホームページを巡回してかき集めてくるのが一般的なようです。

Javascriptも使ってみましたが、、

  • 掲示板でも、スパム対策が話題になりましたが、メンバーのTさんから教えてもらった情報を参考に、Javascriptを使ったメールアドレスかく乱策を試してみました。
    <SCRIPT language=JavaScript>
    <!--
    	function gen_mail_address(obj) {
    	var mail_address = '@' + 'kurarinet.com';
    	mail_address = 'sysop' + mail_address;
    	obj.href = 'mai' + 'lto:' + mail_address;
    	}
    //-->
    </SCRIPT>
    
    ■連絡先 <IMG height=24 src="mail.gif" ><a href="#" onclick="gen_mail_address(this)"><B>sysop</B></A>
  • ブラウザのステータスバーにも、 http://kurarinet.com/# と表示されるだけです。
     javamail.jpg
  • 基本的には、mailtoと同じなのですが、htmlソース上は、構文とメールアドレスを分解して並べ替えることで、収集ロボットに対する「目くらまし」作戦です。人が見ればすぐ分かりますが、なかなか巧妙な仕掛けだと思います。
  • 8月頃こっそり仕掛けました。その時は効果があったと思います。直後、激減しました。しかし、半月ほどでボチボチ来るようになり、11月になると、1日20~30通が届く有様です。
  • 前置きが長くなりましたが、スパム対策はメールアドレスを完全に隠蔽するしかない!というわけで、メールフォームを導入することにしました。

導入したメールフォーム

  • インターネットを回っていくつか見つけて試しましたが、使ったのはこれです。
     メールフォームスクリプト「mailform.php」 (c)2005 WEBサーバプログラミング研究所
  • 特長としては
    1. PHPタイプ
      対象者は不特定多数のため、CGIでは不可。ただし、理由はうちのサーバ特有の事情です。サーバ構成上CGIディレクトリ自体にアクセス制限かけてあり、フォームを呼出す段階でメンバー限定となってしまうのです
    2. メールだけでなく、管理者画面でも、内容確認ができる
      逆に言うと、メールサーバの環境がなくても使用できるわけ

導入手順

  • スクリプトは1本 mailform.php だけ。これを、ホームページディレクトリにおくだけ
     /var/www/html(ホームページ)
            |-- index.php      トップページ
            |-- mailform.php    プログラム本体
            |-- mailform.dat    入力されたデータを蓄積
  • 従来のmailto の代わって、 mailform.php をリンクするだけ
    ■連絡先 <IMG height=24 src="mail.gif" > <a href="mailform.php"><B>こちらから</B></A></font>
     phpmail.jpg
  • 書き込みがあると、 mailform.datに追記することになっているが、最初、dataファイルがなく書き込みエラーが発生!?(ソース見ると、自動的に作成することになっているが、動作せず??)
  • やむなく、手動でファイルを作成し、アクセス権限を調整
    # touch mailform.dat
    # chmod 666 mailform.dat

主なカスタマイズ

  • クリックすると、以下のようなフォームが表示されます。入力して送信すれば、管理者宛にメールが送信される仕掛けです。
       mailform
  • ほとんどそのまま使っていますが、以下を一部変更
    1. フォーム名表示 当然ですが
    2. 戻り先も
  • ソースがS-JISなので、サーバ上で手直しすると文字化けで編集がたいへんだった。(PCで修正して再アップ。PCからの書き込みが基本なので、あえて文字コード変換せず、S-JISベースにしておいたのです。



  • なお、管理者画面のイメージはこのようになります。投稿された情報が新しい順に表示されます。
       admin_mailform
  • メールサーバが動作していれば、そのままメールが届きます。なお、送信者には、宛先のメールアドレスは一切表示されません。オープンにしてないので安心だし、宛先も随時変更が可能というわけです。
  • この対策に伴い、sysopアカウントは廃止しました。新アカウントは非公開です。

今後の心配

  • 掲示板あらしが心配ではあります。AKIさんの掲示板が閉鎖したいきさつもあります。
  • 「PHASER(フェイザー)」という掲示板攻撃スクリプトがあって、スパムみたいに、大量のいたずら書き込みを自動で仕掛けてくるものです。
  • 対策としては、captcha(ランダム画像による認証)がありますが、今後追加を検討しなければならなくなるかもしれません。

(2006年12月2日 記)


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   リンク元