32

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

#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 に悩まされることがないため、この手法が気に入っています。

このテクニックを使った経験のある人はいますか? 効果的ですか?

4

4 に答える 4

6

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

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

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

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

私の経験の簡単な要約は次のとおりです。(最初に見つけた場所は覚えていませんが、この投稿は、10 年以上前に最初に見たものと非常によく似ています。) HTML5 によって有効化されたクライアント側の検証が追加されたことで、さらに効果的になっているようです。そして、あまりにも性急な投稿に対して課したサーバー側の制限により、さらに良くなると考えています。

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

于 2019-03-27T20:49:10.083 に答える
4

それは比較的うまく機能しますが、ボットの作成者があなたのページに対応している場合、彼らはそれを見て (またはチェックするルーチンのセットアップさえあり)、それに応じてボットを変更する可能性が高くなります.

私の好みはreCaptchaを使用することです。しかし、上記は一部のボットを停止します。

于 2010-09-01T22:00:52.490 に答える