私はウェブサイトのメールフォームを持っています。ロボットからのスパムを防ぐために、カスタムCAPTCHAを使用しています。それにもかかわらず、私はまだスパムを受け取ります。
どうして?ロボットはCAPTCHAにどのように打ち勝ちますか?彼らはある種の高度なOCRを使用していますか、それともそれが格納されている場所からソリューションを取得していますか?
どうすればこれを防ぐことができますか?別のタイプのキャプチャに変更する必要がありますか?
フォームメッセージを処理する私のメール送信者から送信されているため、フォームから電子メールが送信されていると確信しています。文字スタイルも同じです。
記録のために、私はPHP + MySQLを使用していますが、この問題の解決策を探していません。ロボットがこれらに勝つ一般的な状況に興味がありました。私はこの状況を例として述べただけなので、私が何を求めているのかをよりよく理解できます。
CAPTCHAを取得する最も簡単な2つの方法:
ProTypers と同じように、人間の農場を使用します。つまり、CAPTCHAにお金を入れるように求めます。
OCRを使用します。
CAPTCHAメカニズム自体または周囲のアプリケーションにバグがあり、CAPTCHAを迂回できる可能性もあります。
ちなみに、 W3Cの記事「CAPTCHAのアクセス不能:Web上のビジュアルチューリングテストの代替手段 」では、CAPTCHAがどのように侵害される可能性があるかについても説明しています。
[...]システムへの最初の文書化された攻撃の1つは、カーネギーメロンの学生によるもので、CAPTCHA画像を成人向けWebサイトへのアクセスに関連付け、認証を解読するための人間の労力を無料で獲得しました。 [...]
外部プロジェクト[...]は、光学文字認識を使用すると、多くのシステムが88〜100%の精度でコンピュータに打ち負かされる可能性があることを示す方法論と結果を示しています。
では、どうすればそれらの攻撃を防ぐことができますか?
カスタム実装のCAPTCHAがある場合は、 reCAPTCHA のような人気のあるCAPTCHAに移行しようとする場合があります。
これは、独自のCAPTCHAが簡単にOCRできない場合、またはバグが悪用された場合に役立ちます。
一般的なCAPTCHAメカニズムを使用している場合、カスタムメイドのメカニズムまたは別の一般的なメカニズムに移動すると、OCRが妨げられる可能性があります。
技術的には、人間の農場を妨げるものは何もありません。複数のフレームが異なるテキストを非常にすばやく表示するアニメーションGIFを作成し、ユーザーが実際に見えるのは1つのフレームだけです。テキストをすべての方向に変形または曲げるか、新しい代替の方法を見つけることができます。テキストを認識することによるOCR、CAPTCHAの解決のために支払われた人間は、それらを正常に解決します。
ビジュアルCAPTCHAからサウンドに移動することもできますが(両方をまだ使用していない場合は、使用する必要があります)、これは、聴覚障害を持つユーザーがアプリケーションを使用できないことを意味します。
FrustratedWithFormsDesigner および GalacticCowboy は、コメントドメイン固有のCAPTCHAで言及されています。私はそれらがどれほど効果的であるかについていくつかの資料を見つけようとしましたが、成功しなかったので、ここに私の個人的な意見があります:
実際のユーザーが答えを知らない場合、ドメイン固有のCAPTCHAは非常に煩わしい場合があります。
例:映画指向のWebサイトのページにアクセスしています。記事の間違いに気付いたので、コメントして著者に通知したいと思います。コメントフォームでは、CAPTCHAのメカニズムとして、写真に表示されている女優の名前を入力するように求められます。私はこの女優が誰なのかわからないので、私ができる唯一のことは、ウェブサイトを離れることです(または、次の2分間はGoogle画像検索を使用します)。
別の例:ウェブサイトが「神秘的」の同義語を提供することを求めている。英語を流暢に話す障害のない人にとっては簡単に聞こえるので簡単ですが、英語を話さない人にとっては、外部の助けなしでは解決できませんよく、またはいくつかの発達障害を持つ人々、同義語や反意語を見つけることは常にトリッキーであるという事実を数えません。
これらのドメイン固有の問題のほとんどは、プログラムで解決できます。私が提供した両方の例は、外部リソース(Google画像と類義語辞書)を使用して簡単に解決できます。 FrustratedWithFormsDesignerによって例として与えられたトランジスタについての方が優れていますが、カスタムメイドのボットでおそらく解決される可能性があります。
人間の農場に抵抗する者はいません。
通常のテキストCAPTCHAが歪んだ文字を描くのと同じように、データを生成します。その場合、生成アルゴリズム自体がボットを調整するために悪用されるか、または reCAPTCHAがテキストを取得するような場所でデータを見つけます。スキャンされた本 。この場合、ボットはこのデータを使用できます(たとえば、辞書から単語を取得し、ユーザーに同義語を提供するように要求した場合、ボットはまったく同じ辞書を使用できます) 100%成功するために)。
追加 MainMaの答え ...
スパマーは他人をだまして彼らのためにCAPTCHAを行うように仕向けます
基本的に、スパマーはキャプチャが表示されていると思われるウェアサイトやポルノサイトをセットアップしますが、それは本当のキャプチャではありません。ボットは、CAPTCHAをスパム(または悪用)したいサイトから取得し、それをウェアーズサイトまたはポルノサイトに表示して、誰かが補完してくれます。次に、CAPTCHA値がボットに返されます...
スパマーについてもう少し
私は reCAPTCHA を使用していますが、それは基本的に価値がないことがわかりました。また、reCAPTCHAを通過したスパムをキャッチするカスタムスパムフィルターを使用しており、誤検知がないか数日ごとに確認する必要があります。
私のフォーラムもすべてカスタムで作成されており、トラフィックはほとんどありません。誰かが私のサイトに特定の攻撃をコード化したとは思いません。それでも、私のスパムフィルターは1日2千通のスパムメッセージをキャッチします。サイトに表示されるものはありません。スパマーは私にスパムを送ることから何の利益も得ませんが、それでも彼らはそうします。
すべてをログに記録するため、スパミングの試行のパターンを確認できます。 CAPTCHAを通り抜ける方法はさておき、スパマーは、入力されたフィールドや、それらのフィールドに入力されるデータの種類やWordの組み合わせを変えるブルートフォーステクニックを明確に使用しています。どうやら彼らはこれを非常に安く(CAPTCHAをバイパスすることを含めて)行うため、個々のサイトを分析して、彼らがやっていることが機能しているかどうかを確認するのに費用はかかりません。
年々、彼らは私のサイトを標的にして、毎日何千ものスパムメッセージを送り続け、毎月1通通過し、その1日後に手動で削除されます。 それはスパムにそれ程安いです!
これは今後何年にもわたる戦いになるでしょう。特に私のような小さなワンマンモデレーターサイトの場合
EDIT 6/22/2017:この投稿googleがreCAPTCHAを完全に刷新し、これを書いている時点で問題なく動作しているため、これを追加します。私がそれを実装してから投稿が少し落ちたので、私は少し誤検知があるか、ユーザーにとってそれが苦痛だと思いますが。 2つの大きな変更点は
1)彼らはテキストの代わりに画像を使用しています(したがって、これ以上OCRはありません)
2)reCAPTCHAを使用するすべてのサイトで、ユーザーのアクティビティと組み合わせています。したがって、サイトAでreCAPTCHAを通過した後、サイトBに移動しても、人間であることを証明するように求められることはありません。また、(私が思うに)もしあなたがあまりにも多くのサイトであまりにも多くのreCAPTCHAをヒットしているなら、それはあなたにもフラグを立てます。ユーザーの活動に基づいて他の種類のAIも使用していると思います。
スパマーがこれに勝つまで、それは時間の問題だと確信しています...
猫犬のキャプチャを使用したことがありますか?標準のキャプチャがあり、それを変更したフォーラムがあり、それ以降ゲストスパムはありません。
あなたのサイトが搾取された超安価な労働力のターゲットになっている可能性があり、人間があなたのCAPTCHAフレーズを手動で入力している可能性があります。
使用しているソリューションが過度に洗練されていない場合、攻撃者が画像認識を行っている可能性があります。
また、コードのどこかにバグがあり、CAPTCHAをバイパスできる可能性もあります。
ロボットがあなたのCAPTCHAを打ち負かしていると仮定しないでください。システムを全体的に考え、システムが侵害されていないかどうかを確認します。
他の人たちは、スパマーがCAPTCHAをどのように回避するかについて議論しました。これはのヒントですが、これを防ぐにはどうすればよいですか:
特効薬はなく、スパマーは一歩先を行っているようです。したがって、複数の手法を組み合わせて使用する必要があります
他の答えをエコーするために、人間の農場を使用してそれらのキャプチャに入るボットに遭遇している可能性があります。
私は最近、クライアント側のJavaScriptを要求することによりスパムボットをブロックする手法(および付随するDrupalモジュール)をリリースしました。これは100%の効率で機能しました。このコードを使用したすべてのサイトで。AJAXを使用して一意のハッシュを生成し、それを他のフォームデータと一緒に送信し、バックエンドで同じハッシュを計算します。フォームが送信され、2つの値を比較します。
私のブログ投稿の完全な詳細(偶然にも、PHP + MySQLを使用して言及したため、これらはそこで説明されているものと同じテクノロジーです)- モジュールリリース:Badbot;スパムの排除...