web-dev-qa-db-ja.com

ハニーポットキャプチャを非表示にする最良の方法は何ですか?

特にユーザーが私たち人間のために解決することがますます難しくなっているため、ユーザーにとっての煩わしさのため、キャプチャの使用に代わるものを探していました。だから私はおそらく良い解決策はhoneypot captcha-空白のままにすることになっているフィールド-また、ユーザーから非表示にして、ユーザーが入力しないようにします。

だからここで私の本当の質問は:

ユーザーエクスペリエンスの観点から、次のオプションのうち、これを達成するための最良の解決策は何ですか、またはより良い方法がありますか?その理由は何ですか?

  • 使用する display:none;
  • フィールドに背景色と同じ(または非常によく似た)色を付けます。
  • 配置を使用して、フィールドをページの表示領域外に移動します。
  • 含まれるハニーポットフィールドを表示するには要素を小さすぎます。
  • フィールドを表示したままにしますが、配置を使用してフィールドを覆い隠し要素で覆います。
  • JavaScriptを使用して、これらの変更を行います。
  • ハニーポットは表示したままにしますが、ハニーポットには何も入力しないように伝えます。
6
FabioG

わかりやすい。

これらはいくつかの考えです。

  • display:none。を使用します
    • これはページに表示されないので良いオプションのようですが、JonWが言及しているように、一部のボットはそこにあるべきではないと認識しているかもしれません。 JavaScriptの台頭とJavaScriptのすべての相互作用はありますが、それがトリックであるかどうかを確認するのは難しいと思います。
  • フィールドに背景色と同じ(または非常によく似た)色を付けます。
    • そうしないでください。そのフィールドに何かが含まれている有効なフォームが、誤っておそらく何回も表示されることに驚かれるでしょう。
  • 配置を使用して、ページの表示領域からフィールドを移動します。
    • おそらく最高の1つであり、ユーザーはそれを見ることはないため、対話することができます。
  • 含まれているハニーポットフィールドを表示するには要素を小さすぎます。
    • これは良さそうに聞こえますが、アクセシビリティの問題があります。以下に説明します。
  • フィールドを表示したままにしますが、配置を使用してフィールドを覆い隠し要素で覆います。
    • 良い考えではありません。視覚化が変化したり、移動したり、考慮しなかったものの影響を受けたりすると、ユーザーは何が何であるかわからないものを目にします。
  • JavaScriptを使用して、これらの変更を有効にしてください。
    • できません。
  • ハニーポットは表示したままにしますが、ハニーポットには何も入力しないように伝えます。
    • これが最良の選択肢です。どんな観点からも明確で、本当にアクセス可能です。

位置や表現の変更を伴うソリューションの問題は、それらにアクセスできないことです。そのため、支援技術を持つユーザーは、それらに対処する必要がありますが、情報がなく、それをどうするかがわかりません。一部の情報が偶然にそこに到着する可能性のある「事故」の可能性について言及します。

フィールドに入力し、そのフィールドを空のままにすることについてのコメントの1つを考えると、それは事実です。すべてのシステムに欠陥があります。しかし、この欠陥は他の欠陥よりも少し「良い」と思います。さらに、空のフィールドとなしのメソッドを組み合わせるメソッドと、2 + 2のような別の人間の質問を組み合わせることができます。これにより、少なくとも3つのフォームモデルがあり、すべて自動スクリプトでアクセス可能ですが予測できません。それでもいくつかの欠陥が発生する可能性がありますが、これまでのところ、良いオプションのようです。

4
PatomaS

display: none;が含まれている汎用CSSクラスを使用しています。

ボットがCSSをフェッチしてクラス定義を読み取る場合、ボットは私のすべての称賛に値します。

1
Bobby Tables

ハニーポットのキャプチャは、ユーザーが解決すべき問題を解決しなければならないという負担を取り除くので、UXの積極的な動きです。ユーザーのためにSUXをキャプチャします。

私はこのテクニックを(display:noneを使用して)広範囲に使用しており、ボットの移動に問題はありません(聞いたことはあります)。ボットで満たされたフォームがいくつか通過しても、それは世界の終わりではありません。それは私たちが対処するためのものです。

なぜ人々がこのテクニックを日常のフォームにこれ以上使わないのか、本当にわかりません。