1. ホーム
  2. forms

[解決済み] ロボットが自動的にフォームに入力するのを防ぐには?

2022-09-17 07:16:47

質問

自動生成された入力を防ぐために、十分なアンチスパムメカニズムを考え出そうとしています。captcha、1+1=? のような技術はうまく機能すると読みましたが、それらはまた、アプリケーションの自由で迅速な使用を妨げる余分なステップを提示します (私はそのようなものを探していません。).

私はすべてのフォームにいくつかの隠しフィールドを設定しようとしました。 display: none; しかし、スクリプトがそのフォームフィールド ID を追跡し、単にそれを記入しないように設定できることは確かです。

自動フォーム入力ロボットを防止する良い方法を実装していますか/知っていますか? HTML および/またはサーバー サイドの処理でシームレスに行うことができ、(ほぼ) 防弾となるようなものはありますか? (JSがなくても、単に無効にすることができるので)。

私は、このためにセッションに依存しないようにしようとしています(たとえば、過負荷を防ぐためにボタンが何回クリックされたかをカウントします)。

どのように解決するのですか?

簡単に実装できるが確実ではない (特に特定の攻撃について) スパム対策の方法は、フォーム送信とページ読み込みの間の時間を追跡することです。

ボットはページを要求し、ページを解析し、フォームを送信します。これは高速です。

人間がURLを入力し、ページを読み込み、ページが完全に読み込まれる前に待ち、スクロールダウンし、コンテンツを読み、コメント/フォームに記入するかどうかを決定し、フォームに記入する時間を必要とし、そして送信します。

時間の差は微妙で、Cookie なしでこの時間を追跡するには、サーバー側データベースの何らかの方法が必要です。これは、パフォーマンスに影響を与える可能性があります。

また、閾値の時間を調整する必要があります。