2012年02月02日

スパム対抗戦

 うお。横須賀で雪が舞ってる。この前都心で積もった時も降らなかったのに。

 とまあ、それは置いといて メインページ をちょこっとだけ更新。
 昔から海外の方がよく来られるもんで、先代のホームページには英語ページがあったんですが、正直疲れるので今のページではハイブリッドにしてみてます。で、昨日までは日本語読めない人が最初に Products のページに行ってしまうと間違いなく諦めて帰るコースだったので、ちょっとだけ英語書いてみました。
 ゲームページの方は、ダウンロードボタンの付近には日本語書かないようにして、あとは readme 見てねって方針です。そもそもサポートしないし。
 英文は、まあ、昔から苦手ですのであの辺で勘弁してください。たぶん意味は通るよね?。ね?


 あとは、前のメールアドレスをスパム様に完全にダメにされたせいで、メアド公開がとてもイヤな子なのですが、さすがに画像オンリーは不親切だろうという事で、一応クリックすればメーラが立ち上がるようにはしてみました。Javascript 切ってたらダメだけどね。まあアドレスは読めるし、この辺が妥協点。

 最初はメールフォームを置くつもりだったけど、メアドは漏れないものの、結局スパム対策しなくちゃいけないのを考えたら面倒になったのでナシで。無料公開されてる高機能の奴を使えばある程度は対策してくれるのかもしれないけどね。まあ、その、なんだ。面倒(本音)。

 ということで、今回悪あがいてみた事の覚え書きです。

いろんな手があるもんだ

 さすがに皆さんスパムには散々苦労してるみたいで、いろんな事を考えますね。参考にしたページはこんなところ。  で、数ある手段の中で、以下は効果はあるとはいえ、ご意見くださる人にお手数かけたり間違いメールになるのはイヤなので却下。
  • メアドを画像にする
  • メアドの @ を ★ などに置き換える
  • メアドに _NoSpam などと連ねておき、送信時に取り除いてもらう
  • メアドを逆順に書いて、スタイルシートで右から左に表示する(一瞬感心したが、送る人がコピペした場合に最低すぎて笑った)
 実際にクリックしてメーラを起動できる手段となると
  • エンティティ化 (メアドの周辺を文字コード表記に置き換える)
  • Javascript でメアドを切り分けたり暗号化し、ソースに素のまま書かない。
  • メールリンクに Javascript を仕込んで、スクリプトから location.href で mailto: に飛ばす
となるのですが、プログラマから見て、悪い人に少しでもやる気があればエンティティ化が障壁になるとは全く思えないので却下。それでもある程度の効果はあるって事は、集める方も大半は片手間なんでしょうね。

 それ以外となると、どうにも Javascript のお世話になるしかなさそうなのですが、まあ今時のサイトや web 上のサービスを見る限り、大抵の人はオンにせざるを得ないでしょうし、メアド画像と併用しての付加機能ならアリなんじゃないかなと思ったのでその方向で。

Javascript でどうするの?

 Javascript を使う2種類の方法の違いは、メールのリンク先にメアドが含まれるか否かです。メールのリンクにカーソルを合わせた際、前者ならステータスバーに 「mailto:メールアドレス」 、後者なら 「Javascript:void(0);」 などと表示されるはずですが、世の中にはそれすら収集するロボ君も居るらしいですよ。頑張る人は頑張りますね。頑張らなくていいのにね。

 実際には前者だけで十分効果はあるみたいですが、まあここまで来たなら徹底的にという事で後者を採用。前者の方がブラウザの 「ショートカットをコピー」 でメアドをコピペできて少し便利なんだけどね。

 最終的な結論は メインページ のソースの 「function contact()」 の辺りを見てもらうと参考になるかと思いますが、やってる事は以下のとおりです。(本当ならここにカッコよくソースを表示すべきでしょうが、ソース用のスタイルシートをまだ準備してないので今日は勘弁)
  • Javascript で別なアドレスに飛ぶための命令 「location.href = 'mailto:メールアドレス';」 をあらかじめ文字コードの配列に変換しておき、文字コードそのままも何なのでちょっとだけ細工。
  • メールのリンクが押されたら、用意していた文字コードの配列を元の文字列に戻し、eval() で Javascript の命令として実行する。
  • 結果として mailto: へのリンクを押したのと同じ事になり、ブラウザの機能でメーラが開く

Web屋さんも大変だ

 そういや、「リンク押した際に Javascript を呼ぶ」ってのも、今時は皆当たり前のようにやってるけど、そこにはいろんな流儀やこれまでの積み重ね、IE のバグとの戦いの歴史があるらしく、まあ本業の Web 屋さんも大変なんだなぁと思いました。
 最終的に参考にしたのはここ。といっても他の意見も多すぎて、そもそもこれが正解なのかもよくわかりません。  今までもたまに、リンク先が 「Javascript:void(0);」 ってのを見るたびに何でこんな事してるのかと疑問に思ってたけど、やっと意図が分かったよ。


 ああ、ちなみにですね。今メインページで公開してるのはいつでも捨てられるアドレスなので、アドレスに年号なり入れて、定期的に差し替えるのも手ですけどね。明記さえしてしまえばそれもアリな気もする。

タグ:web
posted by ひこざ at 12:55| Comment(0) | Webページ作成
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。