7

私のサイトに電子メールアドレスを置くために、私はこのJavascriptを使用します:

function showEmailLink(user, domain, linkText) {
 if (linkText == "") {
  linkText = user + "@" + domain;
 }
 return document.write("<a href=" + "mail" + "to:" + user + "@" + domain
   + ">" + linkText + "<\/a>");
}

私のHTMLでこれを書くことができるように:

please send me an 
<script type="text/javascript">
  <!--
  showEmailLink("edward","tanguay.info","e-mail");
  //-->
</script>

これにより、私の電子メールはテキストのどこにも存在しないため、ソースコードをスクリーンスクレイピングすることによって電子メールアドレスを収集するスパマーから私のサイトを保護します。

しかし、やる気のあるスパマーが、このjavascriptとHTMLコードに基づいて電子メールアドレスを機械的に判別できるスクリーンスケーパーをなんとかして作成できなかったとは想像できません。

このjavascript電子メールの難読化の方法は本当にどれほど安全ですか?

4

7 に答える 7

14

これは実際には「安全性」の問題ではありません。実際に決定された悪意のあるエンティティは通常のユーザーのように振る舞い、実際にページをレンダリング/評価できるため、通常のユーザーが見ることができるものはすべて「安全」ではありません。

それは抑止力の問題です-自動収穫機はどれくらいにしますか?正確な数はわかりませんが、ほとんどのハーベスターは、ページの「よりソフトな」ターゲットがたくさんあり、ページのスクリプトを完全に評価するのにはるかに長い時間がかかるため、ページを完全にレンダリングまたは評価する必要はないと思います。これは、急速な大量スパイダリングにはあまり適していません。

ハーベスターを本当に抑止したい場合、おそらく現在利用可能な最善の抑止は、CAPTCHAがMailhideのようなアドレスを取得することを含むものです。ただし、ハーベスターが十分に決定されている場合(CAPTCHAを壊すなど、故意または無意識のうちにクラウドソーシングするなどの方法で)、これでも失敗する可能性があります。

于 2009-09-06T23:39:02.713 に答える
1

誰かがあなたのサイトを具体的にターゲットにしたい場合、これは0%安全です。自動化されたスクリプトに対する基準を引き上げようとしているだけなら、問題ないかもしれません。私は最先端に追いついていない。

ただし、これはセキュリティホールであるため、document.write()を介してHTMLに任意の文字列(ユーザー名やドメイン名など)を挿入しないでください。Aノードを作成し、getter/setterメソッドを使用する必要があります。

于 2009-09-06T23:40:48.360 に答える
1

これを行う場合(JavaScriptを使用せずにすべてのコンテンツにアクセスできる必要があると私は信じているため、原則として同意しません)、トリックは独自のことを行うことです。あなたの方法がユニークであるなら、スクレーパーの作者が回避策をコーディングする意味はあまりありませんね?

ただし、一部の最新のスクレーパーは、レンダリングされたソースを使用してアドレスをスクレイプし、JavaScriptの難読化メソッドを無価値にすることが知られています。

于 2009-09-06T23:41:44.560 に答える
1

それはすべて、ページのレンダリングのコストが電子メールアドレスの値によって相殺されるかどうかによって異なります。Davが言ったように、プロのスパマーはそのようなページをレンダリングしたり、CAPTCHASを解読したりするために安価な労働力の軍隊を雇うことができます。信頼できるドメインで新しい電子メールアカウントを作成するなど、これは非常に価値のある場合があります。

showEmailLink()で計算を実行することにより、ページのレンダリングコストを増やすことができます。

于 2009-09-06T23:42:51.797 に答える
1

確固たる証拠はありませんが、メールハーベスターにはここ数年JavaScriptコードを実行する機能があると思います。これは、他の場所では使用されていない公開ページの電子メールアドレスを「保護」するために、あなたと非常によく似た機能を使用することにのみ基づいています。案の定、最終的に彼らはスパムを受信し始めました。

基本的に、人間が電子メールアドレスを解釈して入力する必要のない、できることはすべて、最終的には電子メールハーベスターによってスクレイピングされます。ブラウザがjavascriptを実行してデコードできる場合は、それも可能です。(彼らはおそらくそれを行うためにブラウザを使用します。)

于 2009-09-06T23:46:12.337 に答える
1

Matt Cutts はウェブマスターのビデオで、この手法はもはや「安全」ではないと述べています。http://www.youtube.com/watch? v=Ce6cLrrfS5E のリンクを参照してください。JavaScriptをロボットに許可されていない場所に配置すると、 txt を使用すると、ロボットが html をレンダリングすることを心配する必要はありませんが、Google は JavaScript の解析が向上しており、この方法を使用すると、アドレスが平文で検索できる可能性があります。

于 2009-10-28T15:43:40.453 に答える
0

あなたが私のようで、javascript を使用してもかまわない場合は、次のページを見つけました: http://reliableanswers.com/js/mailme.asp 基本的にこのスニペットを使用します:

<script type="text/javascript">
function mailMe(sDom, sUser)
{
  return("mail"+"to:"+sUser+"@"+sDom.replace(/%23/g,"."));
}
</script>
<a href="/contact/" title="Contact Me!"
 onmouseover="javascript:this.href=mailMe('example%23com','me');"
 onfocus="javascript:this.href=mailMe('example%23com','me');">Contact
Me!</a>

かなり良い難読化。

于 2009-09-23T12:55:46.830 に答える