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


70

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

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


35
ボットを打つものは、おそらく視覚障害のあるユーザーも打つ可能性があることに注意してください
MrChrister


@MrChrister ...そして白地に白はユーザーを倒しますが、ボットは倒しません。
タルヴィワティア10

2
結局、誰かがハニーポットをセットアップし、より長い時間にわたって結果を収集しました。ここでは...結果ですsuperuser.com/questions/235937/...。どうやら、CSSを使用してアドレスの方向を変更したり、任意の隠しコードを電子メールアドレスに挿入したりするのが最良のソリューションです。明らかに、OCRはspambotツールボックスの一般的なアイテムではありません。
エヴァンプライス

ハー、私もここでスーパーユーザーに同様の質問に答えたことを覚えていません
akira

回答:


54

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

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

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


2
同様の方法で使用するGoogle Appsアカウントを持っています。Gmailアカウントに対するGoogle Appsの利点は、アカウントごとに最大50のメールエイリアス(ニックネーム)を作成できることです。以前はこのようなことのためにGmailアカウントを使用していましたが、1年後には常にログイン情報を忘れてしまい、Google Appsでの苦痛が増しました。(それでも素晴らしいテクニックです。+ 1)
ジェセガビン

+1ですが、マイナス面が見られます-無料のメールプロバイダーを使用した1つの設定ではなく、自分のドメインからのメールを信頼する人もいます。

6
ラズロー:もっと明確にすべきだった。最初はその問題があったので、現在、サイトのドメインを使用してメールリダイレクトを設定し、Gmailアカウントにリダイレクトし、個人のメールアドレス(別のGmailアカウント)に転送し、どのサイトを定義するラベルでタグ付けしますから来て、受信トレイをスキップします。人々は、彼らがinfo@mydomain.comをメールまたはcontact@myotherdomain.comていると思うが、彼らはすべての私の主なGmailアカウントに来てなどMYDOMAIN、myotherdomain、のラベルに座っ
カラン

1
Gmailでは、確認済みのメールアドレスで返信することもできます。したがって、Gmail内から「roy@royronalds.com」として返信できますが、実際のメールには「roy@gmail.comがroy@royronalds.comに代わって送信する」などの微妙な違いがあります。実際に別のアドレスから送信するようにGmailを使用していることに気付く人はほとんどいません。
クズカイ

上記のコメントを読んで@jessegavin @Lazlow
Sruly

30

12
データの1.5年の技術の比較techblog.tilllate.com/2008/07/20/...
ダグ・ハリス

@DougHarrisあなた(または他の誰か)は、これに関する新しい研究について知っていますか(これは10歳に近い)?これらの方法は今日どのくらいうまく機能していますか?新しい研究を見つけることができませんでした。
JonasCzは、モニカを

20

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

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

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


18

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

例:

thatguy at gmail dot com

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

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

更新:この手法の実際の例を次に示します。

アップデート2:

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


6
私はこのアプローチに疑問を持ちがちです。主な理由は、それがかなり長い間存在しており、過去10年間に開発された電子クローラーが「at」、「[at]」、「dot」などを置き換えて新しいページを開始しないことを想像できないからです。それぞれのキャラクターと。
hultqvist

@phqなぜですか?ページのスナップショットを取得し、OCRを実行し、@の正規表現を使用することで、すべてのJavaScriptおよびエンコーディングの難読化オプションを無効にするクローラーが存在しないと信じることは非常に難しいですか?これらの手法のすべてを回避できるボットを作成できるからといって、スパマーがそうするわけではありません。自然言語を使用する利点は、標準的な電子メールURIよりもはるかに多様であるということです。@記号は通常そうではありません。
エヴァンプライス

2
@Evan、私のポイントは、この手法が一般的になりすぎており、通常はスパムと戦うときに問題になることです。この手法は自然言語の手法ではなく、「tld comとユーザー名fooを使用してドメインの例でメールを送信」のようなものだと主張しています。「アット」技術は、単なるシンボル置換技術です。
hultqvist

@phq安価なjavascriptの難読化技術は同じくらい長く存在しており、簡単に破ることができると主張します。ポイントは、ページスクレイパーがページから電子メールをキャプチャすることを排除することはありませんが、質問が示唆するように「可能性を減らす」ことです。さらに、ユーザーを疎外することなく実装するのが最も簡単なオプションです。あなたの主張がこのオプションを他のどのオプションよりも悪くするかはわかりません。
エヴァンプライス

1
私も見たthatguy funny-symbol gmail.com
-rlb.usa

12

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

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


2
現在、このような問い合わせフォームに記入するスパマーがたくさんいます。
txwikinger

4
連絡フォームに記入することはありません。連絡先の電子メールが見つからない場合は、その会社とは取引を行いません。今、それが私にとって必須であり、連絡先の電子メールがない場合、私は国際的にも電話で電話することを好みます。連絡先フォームの問題は、入力した情報のコピーを自分のメールアドレスに転送するかどうかわからないため、詳細を追跡するために情報をどこかにコピーアンドペーストする義務があることです。
vmarquez

@vmarquez:結構です。あなたのアドレスにもメールを転送するオプションがあったら幸せですか?ユーザーが電子メールアドレスをスパマーにさらすことなく、アクセス可能なJS非対応の方法で機能する方法でユーザーに電子メールを送信できるようにしたいクライアントがたくさんいます。彼らは彼らのサイトに電話番号を持っているので、あなたは彼らにそのように連絡できるでしょう。好奇心から、あなたも同様にそれらを追跡するために企業との通話を記録していますか?
Zhaph -ベンDuguid

2
@Zhap:そのとおりです。フォームのあるページに、電子メールでリクエストのコピーを取得することを示すメモがあれば幸いです。一部のサイトにはそのメモが含まれており、フォームを使用しています。電話で電話する必要がある場合は、電話中にリクエストを行いません。代わりにメールをお願いし、メールに進みます。私は多くのクライアントに代わって製品/サービスの調査を行う傾向があるため、最初の連絡先は電子メールで作成することを好みます。
vmarquez

@vmarquez:フォームに記入してから、記入したフォームをPDFに保存/印刷できませんでしたか?
アンドリューグリム

9

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を使用して作成する必要があります。他の回答を参照してください。しかし、私はそれの大きな友達ではありません。


これはテキストを選択するために機能しますか?
アンドレイリネ

2
ただし、スクリーンリーダーはスタイルシートを無視する傾向があるため、これにはアクセスできません。
不機嫌なヤギ

8

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


これは、良いボットに対してはあまり役に立ちません。ボットがJavaScriptを実行している場合(これは大したことではありません。ブラウザーエンジンでページを実行し、生成されたHTMLを取得します)、完全なアドレスを持っています。Gmailのドットコムsomeone@gmail.comを引くよりも少し難しくないでキャッチ誰か
ミルチャChirea

8

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

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

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


+ 1、Spam Assassinは、Googleを使用したくない人に非常に効果的であるように調整することもできます。
ティムポスト

7

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


1
以前にこの手法を使用したことがあり、うまく機能しているようです。また、ユーザーに対して透過的であり、JavaScriptに依存しません:)
Michael Mior

そのテキストを解析するためにボットを書くことは王室の痛みです。一方、それは電子メールアドレスまたは機密事項であることは明らかです。
ミルチャチレア

実際、ボットを記述してHTMLエンティティを解析するのは非常に簡単です。エンコードされたテキストを解読することは、コンピューターが非常に簡単に行うことですが、人間には多くの問題があります(ブラウザーがあなたのためにそれを行う理由です)。だからこそ、この方法がまだ効果的であるのはちょっと奇妙です。
Lèsemajesté

5

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

私の他の答えと比較して、このソリューションはユーザーにとっては面倒ではありませんが(透明ではありません。コピーして貼り付けることはできませんが、最初から再入力する必要があります)、安全性も低くなります。

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


また、大多数のユーザーを困らせます。クリック、コピー、貼り付け、ジー、ありがとうございます。これは、電話のような小型のデバイスでは特に面倒です。
ミルチアチレア

5

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

以下は、その方法の1つの例です。


3
JavaScriptを有効にしていないユーザーはどうでしょうか?
エヴァンプライス

1
@Evan:この21世紀に誰がJavaScriptを無効にしますか?プロダクションボックスからWebを閲覧するまれなシステム管理者を除きますか?;-)
クリスW.レア

1
@ Chris、Javascript(またはCookie)をオンにするのは、それを必要とするサイト(たとえば、このサイトなど)に特定の何かが必要な場合のみです。もちろん、私は私の最後の人かもしれません... :)
Cyclops

5

単純な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("test123@example.com")

これは出力を与えます

<!-- test123@example.com -->
<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ページに貼り付けられると、ブラウザーはテキスト「test123@example.com」を「mailto:test123@example.com」へのハイパーラインとして表示するため、エンドユーザーにとってはアドレスを含めるのと同じくらい便利です。明確に。しかし、多くの収穫ボットを打ち負かすようです。

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


4

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

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


9
どちらが面倒なのかわかりません。キャプチャを入力する必要があるか、Outlook Expressセットアップウィザードを取得するメールリンクをクリックする必要があります。それは明らかに聴衆に依存しますが、私はコンタクトフォームが進むべき道だと思います。
ガブリエル

@Gabriel:Captchaは間違いなく迷惑ですが、私はあなたに完全に同意します。人々がmailtoの使用を停止することを望みます。今日では、サーバーを介して直接電子メールを送信するのは簡単です。
オマールコール

1
CAPTCHAは私見のソリューションではありません。他人の罪に対してユーザーを罰しないでください。他の解決策がある場合、ユーザーに負担をかけています。
vmarquez

3

私は難読化のファンで、電子メールアドレスは基本的にJavascriptで表示されます。

たとえば、次のmy@email.comようにレンダリングできます

<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>

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

これが私が使用した難読化ツールです。


また使用することができます<a href="#" onclick="document.location.href='mailto:...'; return false">
マークヘンダーソン

ただし、これらの2つのソリューションは、JSなしではうまく機能しません。
グラントペイリン

2

一方通行:

  <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> 

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


私は、複数の変数で同じものを使用します-私にとっては、ボットの個々の値をつなぎ合わせるのは難しいようです。

2

多くの人があなたに連絡するようになると、世界のすべての難読化技術は長期的には助けになりません。誰かがあなたにメッセージをドロップすると、後で自分の受信トレイをスキャンし、いくつかのマルウェアに感染する/何でも有効なアドレスのために/メール/アドレス帳を送信し、andyour一覧表示するには、リストから渡されるが、それを解決するためにすべてがかかっている[私も連絡先を持っています最もばかげた理由でメールアドレスとパスワードをオンラインフォームに入れるのに十分なバカな人、おそらくあなたも持っているでしょう、最近の人は誰かの「メール占星術チャートと予測」を計算することをすぐにスパムするサイトでした同じサイトへの招待状を持つ愚か者の連絡先と<deity>は、結果として現在どの他のリストに載っているのかだけを知っています]

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

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

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

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


1

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

PHPでのソリューション:

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

ところで、isbot()あなたが持っているボットフィルタールーチンを指すユーザー作成関数です。
タルビワティア10

1

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

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


1

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

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

より良い方法!

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

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

概要

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


0

私は何年もfred@no-spam.domain.comを使用しています。ユーザーは通常、「スパムなし」を削除するのに十分なことを知っています。

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


4
ユーザーが「スパムなし」を削除するのに十分な知識を持っていることに驚いています。通常、ユーザーが一歩先を行くと考えることができると仮定すると、非常に悲惨な結果につながります。スパムを削除するように指示するメモを追加しない限り、スパムを削除することはありません(その場合でも、多くの人がメモやポップアップを読みません)。
オマーコール

7
ユーザーが「スパムなし」を削除することをどのように知っていますか?あなたはそうする人からのみ聞くでしょう:¬)
皮をむく

1
@pelms:良い点ですが、それを利点と考える人もいます。それはあなたの受信メールをスクリーニングインテリジェンスフィルター...として機能することができます
デビッドSpillett

0

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


0

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

バドマンズ

Manz Web Designs、LLC



0

私が使用して、PHPの関数を実行時に出力するスクリプトをいくつかのJavaScriptを生成します。実行時にJSを生成するために PHP は必要ないことに注意してください。一度ローカルに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

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

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


0

Google Docs Form / Spreadsheetをセットアップしました。フォームエントリを1日に1回確認でき、受信トレイがあふれることはありません。


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.