WordPressコンテンツにある可能性のある電子メールアドレスをスパムボットが取得しないようにしようとしています。WordPressには、単に antispambot()
電子メールアドレスをHTMLエンティティに変換します。
[email protected]
は次のように変換されます:
no-reply@domain.com
この機能は長い間使用されており、この方法はより長く使用されていると思いますので、私の質問は次のとおりです。この方法でもスパムボットをだまし、上記のメールを安全に保つことができますか
いいえ、それはスパムボットをだますことにはなりません。私は、html5libなどのツールを使用してDOM全体を解析しているスパムボットをいくつか見ました。もちろん、多くのスパマーはメールアドレスを「推測」するだけです。ボットネットがある場合にメールを送信するコストは基本的に0であるため、推測するためにユーザー名とドメインの組み合わせを作成するとうまくいきます。
私が見てきた少し優れた手法では、JavaScriptを使用して、実行時に電子メールアドレスをDOMにレンダリングします。スパムボットは、ブラウザで実行するか、WebDriverのようなものを使用してそれらを取得する必要があります。
しかし、現実には、メールアドレスを非表示にするのは苦戦です。連絡先のアドレス帳が危険にさらされているか、その連絡先が投稿された場所の1つを見逃している可能性があります。良いフィルタリングはおそらく時間とエネルギーのより良い投資です。
メールを「安全」に保つことは、ほぼ不可能です。特に、感染したシステムのアドレス帳を検査して次のことを行うマルウェアが広く展開されています。
あなたのメールがスパムリストの一部になるのを見るには、あなたがメールを交換する相手の一人が彼のシステム上に(あなたが制御できない)マルウェアを手に入れれば十分です。メールが公開されると、スパマーは決して忘れない(*)ため、戦争は失われます。電子メールでスパムを受信しない唯一の現実的な方法は、電子メールをまったく使用しないことです(それが Donald Knuth が行うことです)。
ただし、電子メールの収集を防止するこのような手法は実際には効果的ではありませんが、一部の人々はそれを感じるantispambot()
を呼び出す責任。その意味では、その関数を使い続ける必要があります。動作する(動作しない)のではなく、(一部の)ユーザーをなだめるためです。
(*)一度に数十通のスパムを受信していたため、一度使用をやめた5年後、一度メールアドレスを破棄しました。 20000以上のスパムがあり、単一の非スパム電子メールではなかったので、私はその悲惨さに終止符を打つ時がきたと判断しました。
JavaScriptでメールアドレスを保護することは効果的な方法のようです。かなり長い間、いくつかのWebページにメールアドレスが表示されており、スパムメールを受信していません。少なくともあなたが持っているホームページで共有する電子メールアドレスの場合、これは彼らの所有者に少し平和を与えます。
メールアドレスは逆に書かれており、JavaScriptがそれらを逆転しています。 forループのような潜在的に高価なものが含まれるとすぐに、スパムボットは気にしないようです。もちろん、これは将来変更される可能性もあります。
「<」や「>」などの文字(電子メールアドレスにも表示される可能性があります)がデータとして発生した場合は常にエンコードされるため、実際に動作しているWebスクレイパーhasはHTMLエンティティをデコードします。したがって、エンティティのデコードは特別な「攻撃機能」でもありません。それは自然な機能です。
あなたの唯一の希望は、スパムボットの作者がどういうわけかHTMLを理解していないか、テキスト処理を最小限に抑える必要があることです。しかし、それは非常に薄い氷です。
JavascriptとCSSの解析と実行に関するGoogleからの最近の発表によると( http://googlewebmastercentral.blogspot.com/2014/05/understanding-web-pages-better.html )、3番目に確認済みパーティ( http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157 )の場合、これらの古い方法を使用してスパムボットを騙す可能性は非常に低いようです。メールアドレスを隠す唯一の真の方法は、サーバーサイドスクリプトを使用してメールを配信するフォームを使用することです。 SPAMの検出および保護ソフトウェアを信頼する必要があると私が考える場合を除きます。