web-dev-qa-db-ja.com

ウェブサイトに「お問い合わせ」メールアドレスをリストし、スパムの可能性を減らす方法は?

Webサイトに「お問い合わせ」メールアドレスをリストし、スパムの可能性を減らす良い方法は何ですか?

メールアドレスを画像に入れるのが最良のテクニックですか、それとも他にありますか?

70
Chris W. Rea

すべての連絡先フォームを使い捨てのGmailアカウントに渡し、メールを実際のメールアドレスに転送します。無料で、簡単で、Gmailのスパム検出は最高です。

Webサイトを作成するときに余分な労力は必要ありません。何か問題が発生した場合は、Gmailアカウントにログインしてスパムとしてフラグを立てるだけです。

その後、Gmailの受信トレイを設定して、転送されたものを自動的にアーカイブしたり、余分なコピーを保存したくない場合は削除したりできます。

54
Callan

email obfuscator を使用します

30
Jason

私の答えはこれをしないことです。 GMailやBarracudaスパム対策アプライアンスなどの最新の電子メールシステムは、スパムをフィルタリングする優れた仕事をしています。あなたとあなたの訪問者との間に障壁を置くと、エンゲージメントのレベルが低くなり、サイトの種類によっては潜在的な売り上げの損失を意味します。

ネイティブメールクライアントがインストールされていないユーザー、またはmailto:ハンドラーが正しく設定されていないユーザーが心配な場合は、リンクされたメールアドレスとフォーム(CAPTCHAなし)の両方を含むお問い合わせページを作成し、ユーザーに選択させてください。

迷惑メールは迷惑ですが、ユーザーではなく、私たちの負担です。

20
JasonBirch

自然言語を使用してメールアドレスを入力してください...

例:

thatguy at gmail dot com

@記号を検索して通常のアドレスを正規表現するボットを書くことと、自然言語を区別できるボットを書くことがどれほど難しいかと驚くでしょう。

100%確実なわけではありませんが、難読化ほど悪くはなく、視覚障害のあるユーザーやJavaScriptが無効になっているユーザーを遠ざけることはありません。

更新: この手法の実際の例

更新2:

実際に誰かがこれについて調査し、オンラインで投稿していることがわかりました。 結果を説明するスーパーユーザーの投稿 または 元の記事を参照してください

18
Evan Plaice

個人的に、私はサイトにメールアドレスを表示しませんが、代わりに使いやすい、アクセス可能なお問い合わせフォームと、メールの送信元の表示を持っています。ユーザーがメールアドレスを公開したり、さまざまなJavaScriptフープをジャンプしたりすることなく、サイトの所有者や運営者にメールを送信できるようにします。

スパムフィルタリングがそれほど洗練されていない場合、これは多くの場合最良の方法です。

12

cssを使用して、実際のテキストからノイズを隠します(すべて1行で、テクニックをわかりやすく説明するためにフォーマットしました)。

u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com

そして、この小さなcss-snippetを使用します:

.spam { display: none; }

有効なmailto:コンテンツが必要な場合は、domでjscriptを介して作成する必要があります。そのための他の回答をいくつか参照してください。しかし、私はそれの大きな友達ではありません。

9
akira

私がしているのは、spanタグでラップされた<span class="email">joe dot blow at gmail dot com</span>という単語としてメールアドレスを書き出すことです。次に、ページレベルのスクリプトが実行され、そのようなスパンを取得し、それぞれを構築済みの電子メールリンクに置き換えます。あまりあいまいではないかもしれませんが、苦情はありません。さらに、JavaScriptが無効になっている場合でも、ユーザーは実際のスパンテキストを読むことができます。

8
Grant Palin

最適なソリューション:スパムフィルターを使用

実際には、Gmailを使用してビジネス用のPOP3メールアカウントを処理しています。これは、さまざまなコンピューターでメールを確認する方がはるかに簡単だからです。 Gmailのスパムフィルターは世界最高です。

そのため、webmaster @ example.comをメールアドレスとして表示するだけで、スパムを忘れることができます。

8
DisgruntledGoat

&#649&#7854&#7575のようなHTMLエンコーディングを使用すると、ブラウザは「abc」のようにレンダリングします

7
ilhan

完璧ではありませんが、非常に良い方法は、javascriptを介して電子メールアドレスを作成することです。電子メールを探しているほとんどのスパイダーはjavascriptを実行しないため、読み取り可能な電子メールアドレスは見つかりません。

ここ は、その方法の1つの例にすぎません。

5
txwikinger

グラフィックライブラリ( PHP などでサポートされている Gd など)を使用して、電子メールアドレスを含む.png画像を動的に作成します。

他の回答と比較して このソリューションはユーザーにとって面倒ではありません(ただし、透明ではありません。コピーして貼り付けることはできませんが、ゼロから再入力する必要があります)。難読化されていない画像を潜在的に読み取ることができます。

しかし、全体的には良い妥協だと思います。大多数のスパムボットを阻止します。

5
Thomas Bonini

単純なPythonスクリプトを使用して、電子メールアドレスをmailtoリンクに変換します。このリンクでは、電子メールアドレスはHTMLエンティティでエンコードされています。これはユーザーには完全に透過的ですが、最も単純な収穫ボットを打ち負かすのに十分なほど内容を覆い隠すようです。

#! /usr/bin/env python3.0

def entity_encode(text):
    out = ""
    ba = text.encode()
    for i in range(len(ba)):
        out = out + "&#x{0:02x};".format (ba[i])
    return out

def print_email_link(address) :
        print('<!-- {0} -->'.format(address))
        print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))


print_email_link("[email protected]")

これは出力を与えます

<!-- [email protected] -->
<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;">&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;</a>

結果がWebページに貼り付けられると、ブラウザーはテキスト「[email protected]」を「mailto:[email protected]」へのハイパーラインとして表示するため、エンドユーザーにとってはアドレスを含めるのと同じくらい便利です。明確に。しかし、多くの収穫ボットを打ち負かすようです。

明らかに、隠された電子メールリンクをWebページのHTMLソースの適切な場所に貼り付けたら、アドレスのプレーンASCIIバージョンを使用してコメントを削除します。

5

ユーザーにメールアドレスを表示する前に(または連絡フォームがある場合はユーザーに送信させる前に)CAPTCHAを解決するように依頼します。

これはユーザーにとって最も面倒ですが、間違いなく最も効果的です。

4
Thomas Bonini

私は難読化が好きで、メールアドレスは基本的にJavascriptで表示されます。

たとえば、[email protected]は次のようにレンダリングできます。

<a href="javascript:location='mailto:\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d';void 0">
<script type="text/javascript">document.write('\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d')</script></a>

ユーザーに関する限り、通常のテキストであり、コピーして貼り付けることができます。一方、ボットはそれで苦労します。

obfuscator を使用しました。

3
Paperjam

一方通行:

  <script language="javascript"> 
  <!--
  var name = "user"
  var Host1 = "gm"
  var Host2 = "ail.com"
  var addr =
  document.write("<a href=mai" + "lto:" + 
    name + "&#64;" + Host1 + Host2 +
    ">" + name + "&#64;" + Host1 + Host2 + "</a>")
  //-->
 </script> 

JavaScriptをオフにしている場合は、「 <noscript> 」タグに「私のメールの解読:com dot gmailのユーザー」と書くことができます。このようにして、ハイパーリンク機能を取得します。スパム送信者をあなたのアドレスから遠ざける良いチャンスがあり、javascriptがオフになっている人やテキストのみのブラウザはあなたのメールアドレスを取得できます。

2
Adam

世界中の難読化技術は、多くの人から連絡があった場合、長期的には役に立ちません。誰かがあなたにメッセージを落とし、後で受信ボックス/送信済みメール/アドレス帳/何でも有効なアドレスをスキャンし、リストからリストに渡されるあなたのアドレスをスキャンするマルウェアに感染するだけです [もっともばかげた理由でメールアドレスとパスワードをオンラインフォームに入力するのに十分な愚かさの連絡先さえいます。おそらくあなたも持っているでしょう。それはすぐに同じサイトへの招待ですべての愚か者の連絡先をスパムし、<deity>は私たちが現在どのリストに載っているのかを知っているだけです]

私の公開Webサイトのアドレスは、単なる使い捨てのアドレスではなく、使い捨てのサブドメインにあります。そのサブドメインでスパムが発生し始めたら、新しいサブドメインを作成し、連絡先の詳細がリストされているサイトを更新します。その後、DNSレコードからサブドメインを完全に削除します。これを行う場合、またはその他のスローアウェイアドレステクニックを使用する場合は、アドレスが将来変更され、人々ができる場合は、アドレスをリストするページおよびそのアドレスを使用して送信するメールのフッターに必ず明記してください彼らは正しいアドレスを持っていることを確認するために戻って確認する必要があります。

これには、人々がクリックする(ブラウザ+メーラーがそのようにリンクされている場合)、または後で頭脳を使用してアドレスを編集する必要なくコピー&ペーストするための単純なアドレスであるという利点があります(そうでない場合は常に驚く知的で観察力のある人々は、そのようなことを正しくすることはできません)。また、メールサーバーは、期限切れのサブドメインで「ランダム」アドレス(aaron @、adam @、amy01 @、...)に送信されたメッセージをバウンスするのに時間を費やさないことを意味します。また、目の不自由な人やサイトの質の低い人が使用するスクリーンリーダーを混乱させません。

まだ試したことのない別のオプションは、AJAXリクエストを使用して、メールアドレスやその他の詳細を読み取ることです。これは、document.writeベースの難読化よりもわずかに効果的かもしれませんが、Webサーバーに少し余分な負荷を追加します。

以前は「contact me/us」フォームを使用していましたが、プレーンテキストのメールアドレスと同じくらい、時にはフォームを使用してアカウントを作成しようとするスクリプトによってスパムされることがありました。お問い合わせフォームとして使用してください。

2
David Spillett

まさか、ホセ! -はい、ホセ!

a href="mailto:"電子メールアドレスの収集を「停止」する方法はまったくありません。 JavaScriptを使用することは、ほとんどのボットの収穫を防ぐ良い方法であると長い間信じられていましたが、今日では、ボットはこの方法を打ち負かすのがかなり上手です。また、decaptchaソフトウェアを使用してcaptchaを無効にするのと同じ方法で、電子メールアドレスを含む画像を無効にすることもできます。

より良い方法!

より良いアプローチは、優れたスパムブロックを提供する信頼できるメールサービスを使用することです。 Google G Suite および Microsoft Office 365 市場に出回っているソフトウェアとは比較にならないアルゴリズムを使用します。これは、主に1日に何百万ものメールを受信し、「学習」できるためです。スパマーがあなたにメールを送信する前にブラックリストに登録します。

実際、1年前 Googleは機械学習技術によりGmailのスパムとフィッシングメッセージの99.9%がブロックされるようになったと述べています 、ローカルのMicrosoft Exchangeとplesk/cpanelの背後で実行されているメールサーバーはこの保護に対抗できません。

概要

AI機械学習が可能な信頼できるメールサービスを使用して、スパムをブロックします。また、Cloudflareを使用してサイトにアクセスするスパマーを防ぎ、サイトに到達する前に攻撃的なボットの大多数を検出することにより、さらに一歩前進することができます。

1
Simon Hayter

ボットフィルター(1x1px、サブネット、既知のボット、jscript検出、httpリファラー、ブラウザーエージェントを使用)を使用している場合、ボットの場合は情報を表示できません。

PHPでのソリューション:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:yourself_bot@'.$bots_domain_address;
  }
?>
1
Talvi Watia

私が見つけた最も簡単な方法は、デフォルトの住所がある連絡先フォームを使用することです。また、ユーザーが連絡先を選択する機能(マーケティング、販売、技術サポートなど)も使用することです。次に、ドロップダウンの値に基づいて、投稿されたフォームデータがサーバーによって適切な電子メールアドレスに送信されます。

この連絡先リストをデータベーステーブルから実行すると、ドロップダウンへのエントリを簡単に更新/追加できます。そうすれば、あらゆる種類のアドレスをスパムボットの広い世界にさらすことなく、ユーザーにフィードバックを送信する優れた方法を提供できます。

1
Milner

Zoho Creator を使用して、連絡先フォームを設定します。受け取ったフィードバックは、オンラインでアクセスできるデータベースに保存され、メールで送信されます。

0
mvark

PHP関数 を使用して、実行時にスクリプトを出力するJavaScriptを生成します。実行時にJSを生成するためにneedPHPをしないでください。JSをローカルで一度生成してから、ページ内の静的JS。

次のスニペットでリンクされた関数を使用して、指定されたHTML($ processedContentはHTML)の電子メールアドレスを自動的に難読化することもできます。

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }
}
0
iloveitaly

私がやっていることの1つは、 http://www.stopforumspam.com のAPIを使用してスパマーをチェックすることです。詳細についてはお気軽にご連絡ください。お手伝いさせていただきます。

バドマンズ

Manz Web Designs、LLC

0
Bud

私は長年[email protected]を使用しています。ユーザーは通常、「スパムなし」を削除するのに十分なことを知っています。

それ以外の場合は、「キャプチャ」を含む連絡先フォームを使用して、Webサイトから直接メールを送信します。

0
Gary.Ray

ここに別の電子メール難読化ツールがあります: Enkoder 、ダンベンジャミンから。 Mac用のオンラインアプリとスタンドアロンアプリの両方として提供されます。

0
Alex

JavaScriptを使用してもかまわない場合は、ROT13などを使用して電子メールアドレスを難読化できます。たとえば、次を参照してください。
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/

個人的には、お問い合わせフォームを使用することをお勧めしますが、スパムボットの心配はありませんが、もちろんそれはすべて要件に依存します。

0
Mee

問い合わせフォームを使用している場合は、入力にランダムな名前を使用する楽しいテクニックを使用できます。

たとえば、連絡先フォームを作成し、入力として電子メールを使用する代わりに、名前(eman)およびコメント(tnemmoc)と同じliameを使用します。ボットは、これらの入力が何をするかを実際には知らないため、それらを無視します。

0
dkuntz2

Google Docs Form/Spreadsheetをセットアップしました。フォームエントリを1日に1回確認でき、受信トレイがいっぱいになりません。

0
Sri