質問

「ハニーポット」とは、多かれ少なかれ次のような習慣を意味します。

#Register form
<style>
    .hideme{
        display:none;
        visibility: hidden;
    }
</style>
<form action="register.php">
    Your email: <input type="text" name="u-email" />
    Choose a password: <input type="text" name="passwd" />
    <div class="hideme">
        Please, leave this field blank: <input type="text" name="email" />  #the comment is for text-browser users
    </div>
    <input type="submit" value="Register" autocomplete=off />
</form>

//register.php
<?php
if($_POST['email'] != ''){
    die("You spammer!");
}
//otherwise, do the form validation and go on.
?>

より詳しい情報 ここ.

明らかに、実際のフィールドにはランダムなハッシュで名前が付けられており、ハニーポット フィールドには、スパムボットが通常入力する別の名前 (電子メール、ユーザー、Web サイト、ホームページなど) を付けることができます。

ユーザーが CAPTCHA に煩わされることがないため、私はこのテクニックが気に入っています。

どなたかこのテクニックを使った経験のある方はいらっしゃいますか?効果はあるのでしょうか?

役に立ちましたか?

解決

あなたのページへのボット作成者の向きは、彼らがそれを見ることができます(あるいはチェックするルーチンのセットアップを持っている)と、最も可能性が高いそれに応じてボットを変更する場合は、それは、しかし、比較的うまく機能します。

私の好みは reCAPTCHAのに使用することです。しかし、上記のは、いくつかのボットを停止します。

他のヒント

古い質問ですが、Drupal のモジュールを保守しているので、参加させていただきたいと思いました (ハニーポット)、時間ベースの保護とともにハニーポットスパム防止方法を使用します(ユーザーはそれ未満の時間内にフォームを送信できません) バツ 秒、X は連続して送信が失敗するたびに指数関数的に増加します)。これら 2 つの方法を使用して、非常に多くのサイトについて聞いてきました () ほぼすべての自動スパムを排除しました。

私は、CAPTCHA ベースのソリューションよりもハニーポット + タイムスタンプのほうがうまくいきました。なぜなら、ほとんどのスパマーをブロックしているだけでなく、ブロックしていないからです。 ユーザーを罰する.

下記のとおりと技術、ブロック100%の悪用してスパムを送付していた。

  1. ハニーポットと表示す:なし。失敗した場合には、追加スクリプトを収集IPアドレスに書きすることができるのです。htaccessファイルを否定から。
  2. カウント番号のURLをコメント。場合に失敗した警告できます。
  3. の時間を測定。満たない場合には5秒、エラーメッセージをさせていることから、またしても人間で書かに高速自動充填の引き出しおよび設定ができます
  4. trim htaccessファイルdaillyとcrontabで拒否線で行くことはありません30以上のラインによって修正して下さい).

アクセスを拒否するIPアドレスは非常に効果的なボットをしている内覧会には同IPs場合は、変更されたIPしている新しいIPに.htaccessファイルなので問題)。Iトリム.htaccessファイル、毎日のcrontabを自動的にファイルになっています。私は整数IPブロックで同じボットと同じIPを特定できるものですが、約一週間ほど。気がつくと同じIP使用によるボットのための3日間の攻撃数です。

最初の#1トリックブロックの約99%#2ブロックの約1%のボットになって2では#3が必要になります。

私は 2010 年頃から 3 つのフォームでハニーポット キャプチャを使用してきましたが、ごく最近まで変更を加えなくても驚くほど効果的でした。少なくともスパムボットがより洗練されるまでは、ほとんどのスパムボットを阻止できると考えられるいくつかの変更を加えました。大まかに言うと、設定方法は次のとおりです。

各フォームの 1 つの入力フィールドは非表示 (CSS クラス属性でdisplay:none が指定) で、デフォルト値は "" です。スクリーン リーダーなどの場合、入力ラベルが非表示になっているため、フィールドを空のままにしておく必要があることが明確になります。デフォルトでは長さがまったくないため、サーバー側のコード (この場合は ColdFusion ですが、任意の言語でも可能) を使用して、そのフィールドに何かがある場合にフォームの送信を停止します。この方法で送信を中断すると、成功したかのように同じユーザー フィードバック (「コメントありがとうございます」など) が返されるため、外見上は失敗を示すことはありません。

しかし、時間の経過とともにボットが賢くなり、最も単純なフォームがスパムで攻撃されるようになりました。フロントエンド検証を備えたフォームはうまく機能しました。それは、フォームが古いテキスト入力だけを受け付けるのではなく、電子メール アドレスを電子メール アドレスのように構造化する必要があるためだと思います。脆弱であることが判明した 1 つのフォームには、コメント用のテキスト入力と、連絡先情報 (電話番号と電子メール) 用の 2 つのオプション入力しかありませんでした。重要なのは、これらの入力にはフロントエンド検証が含まれていなかったことだと思います。

この検証を追加するのは簡単なので、すぐに追加する予定です。しかし、今のところ、私たちは他の人が「タイムトラップ」の方法で提案したことを追加しました。ページが読み込まれたときに時間変数を設定し、そのタイムスタンプをフォームの送信時間と比較します。現時点では、ページ上で 10 秒後の投稿を許可していますが、3 秒を提案する人もいます。必要に応じて調整を行います。フロントエンド検証を追加する前に、これだけでスパム トラフィックにどのような影響があるかを確認したいと考えています。

私の経験を簡単にまとめると次のようになります。ハニーポットは当初の構想どおりに非常にうまく機能します。(最初にどこで見つけたかは覚えていないのですが、 この郵便受け これは、私が 10 年以上前に初めて見たものと非常によく似ています。) これを追加すると、さらに効果的であるように思えます。 HTML5 によって有効になるクライアント側の検証. 。そして、急ぎすぎる送信に対して現在課しているサーバー側の制限により、さらに改善されると考えています。

最後に、reCaptcha のようなソリューションは検討の対象外であることを述べておきます。私たちは Google の地図 API を使用して Web アプリの開発にかなりの時間を費やしましたが、Google が警告や移行アドバイスなしに API を変更するまではうまく機能しました。私たちは同じ虐待する配偶者と二度結婚しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top