5

複製:


スパマーがmailtoリンクからメールアドレスを取得するのを防ぐための最良の方法は何ですか?私はjavascriptが解決策になる可能性があるという印象を受けています。私の現在の解決策がばかげているかどうかわからないので、それが私が尋ねている理由です。

これが私が現在行っていることです:

<script language="JavaScript"><!--
var name = "emailusername";
var domain = "yahoo.com";
var text = "emailusername@yahoo.com";
document.write('<a href=\"mailto:' + name + '@' + domain + '\">');
document.write(text + '</a>');
// --></script>

より良い方法はありますか?mailtoリンクを配置したい場所にこのコードのチャンクを配置する必要はありません。

4

7 に答える 7

2

Javascriptは役に立ちますが、これはあまり役に立ちません。このタイプのスクリプトを使用すると、電子メールアドレスは引き続きHTMLソースに表示されます。

「最良の」オプションは、クライアント側のjavascriptを使用して、部分から電子メールアドレスを「構築」するため、電子メールアドレス全体がHTMLソースに1つに表示されることはありません。ブラウザはそれをクライアントにまとめます。

于 2009-04-20T20:16:58.840 に答える
1

簡単な修正:

<script language="JavaScript"><!--
var name = "emailusername";
var domain = "yahoo.com";
document.write('<a href=\"mailto:' + name + '@' + domain + '\">');
document.write(name + '@' + domain + '</a>');
// --></script>

これは基本的にReedが提案するものと同じですが、既存のコードを使用します。

于 2009-04-20T20:19:16.340 に答える
0

それはリモートでも良い方法ではありません。スパマーはすべてを取得し、アドレスを正規表現と照合します。彼らはmailtoを探す気になりません:。また、Javascriptで考えられるスキームはすべて、スパマーによってすでに検討され、対抗されています。実際、彼らはおそらくjavascriptを実行してアドレスを取得することができるでしょう。

あなたはできる

A)スパムをフィルタリング
するB)フォームを使用してメールを送信する(スパマーはおそらくこれを使用します)。

于 2009-04-20T20:17:23.130 に答える
0

あなたは正しい方向に進んでいますがemailusername、そこにあると目的が果たせなくなります(ほとんどのスパイダーボットは、HTMLとスクリプトコードを区別することを気にせず、ページに電子メールのように表示されるものを探すだけです)。

一部のスパイダーボットには現在Javascriptを実行する機能があり、この種の難読化をすべて自分で解決するという証拠を聞いたことがあります。

于 2009-04-20T20:19:00.020 に答える
0

すべての電子メールアドレスを画像として配置するなど、電子メールの使用を妨げるだけのばかげたトリックを除けば、それを防ぐ110%確実な方法はありません。

少なくとも個人的には、アドレスが少なくともある程度収集されることを受け入れました。この小さなphp-functionを使用して、すべての電子メールアドレスをhtmlエンコードします。そうすれば、実際のすべてのブラウザーで完全に使用できますが、最も馬鹿げたハーベスターをだますことができます。私が言ったように、それは110%ではありませんが、私はそれに満足しています。

function turboencode($s){
    $tempstr = "";
    for($i = 0; $i < strlen($s); $i++){
        $c = substr($s, $i, 1);
        $tempstr .= "&#" . ord($c) . ";";
    }
    return $tempstr;
}
于 2009-04-20T20:20:09.193 に答える
0

収穫を防ぐ最善の方法は、mailto:リンクをまったく持たないことです。

それを除けば、カウンターはあまりありません。CSSコンテンツや画像のようなものは試されて回避されており、JavaScriptは中途半端な非解決策です(つまり、機能しません)。

考えられるカウンターの1つは、難読化です。次のように、アドレスにナンセンスを追加します。

mailNO`at`SPAMyahoo`dot`com

そして、ほとんどの自動収穫機は(最初は)それを検出するのにいくらかの問題を抱えています。あるいは、コメントのようなものを使用して、ほとんどの収穫者を混乱させることができます。(RFC822は、アドレス指定の一部としてコメントを含む、電子メールアドレスの完全な構文を記述しています。)

もう1つのカウンターは、ある種のCAPTCHAを含むフォームを使用することです。

それらのどれも完全に効果的ではありません。

于 2009-04-20T20:25:53.810 に答える