Webフォームをロボットから保護する別の方法

まえがき



フォームをスパムボットから保護する方法をhabraの読者に訴えます。 この方法は、ほとんどのボットがスタイルシートの読み取り方法とJavaScriptコードの実行方法を知らないという事実に基づいています。 しかし、すべてのブラウザーの約90%がこれらのテクノロジーをサポートしています。 残りの10%は、古いブラウザーとJavaScriptが無効になっているブラウザーです。 考えてみれば、これらの10%のユーザーがフィードバック、フォーラムへの登録、ゲストなどを使用することを目標としていることはまずありません。



既存の闘争方法とその欠点



方法:





短所:



マイナスには、パズル、数字、文字を推測せざるを得ないユーザーの不快感が含まれます。 さらに、今日のグラフィックキャプチャのほとんどは、いわゆる「弱いキャプチャ」であり、単純なOCRサーバー側スクリプトを使用してクラックされます。 多くの実在の人々がキャプチャ認識プロセスに参加する「レミングス方式」に言及する価値もあります。スパマーは、トラフィックの多い特別なサイトでハッキングされたWebサイトから質問/画像を再配布します。 。 別のより興味深い方法は、推測する人々の直接雇用です。



私のやり方の本質





このページで、架空のフォームを作成し、display:スタイルシートのnone要素を使用して、ユーザーの目からフィールドを非表示にします。 次に、ダミーフォームの代わりに、ダミーフォームの外側のページで特定のJavaScript関数を起動することにより、有効なフィールド名で実際の関数を表示します。 ロボットが架空のフォームを送信すると、インタープリターは誤った名前の配列を受信し、たとえばエラーメッセージを表示します。 実際のユーザーの場合、フォームは正常に処理されます。



利点:







短所:







実装



ほとんどの作業は、CSSとJavascriptを使用してクライアント側で行われます。 と

別のファイルからページに接続するのに望ましいCSSを使用して、非表示にします

ユーザーの目からフォームトラップ:





#ourGreatForm {display:none;}









次に、次の内容の単純なjavascriptを作成します(ちなみに、別のファイルに配置することもできます)。

関数GenerateSomethingGreatForRealPeople(){

 //変数を宣言します
 var ourfields = '<input type = "text" name = "sndr_name"> <br>' +
		 '<input type = "text" name = "sndr_email"> <br>' +
		 '<textarea name = "sndr_content"> </ textarea> <br>' +
		 '<input type = "submit" name = "sndr_pressed_button" value = "Send an email">';

 // JavaScriptが実行されているマシンのダミーフィールドを置き換えます
 document.getElementById( "ourGreatForm")。innerHTML = ourfields;

 //実フィールドの表示をオンにします
 document.getElementById( "ourGreatForm")。style.display = "block";

 }




トラップフォームのすべての要素はタグの間に配置されます。 識別子の値は、上記のjavascript関数内の値と一致する必要があります。



 <!-これはトラップ形式です->
 <form method = "post">
	 <div id = "ourGreatForm">
		 <input type = "text" name = "name" value = "dummy field"> <br>
		 <input type = "text" name = "email" value = "dummy field"> <br>
		 <textarea name = "content">ダミーフィールド</ textarea>
	 </ div>
 </ form>




フォームの後、ドキュメントの最後のどこかで、実際のブラウザがある場合、javascript関数を実行します。

 GenerateSomethingGreatForRealPeople()


この機能の結果、フォームの架空のコンテンツが現在に変更され、フォームの表示がユーザーに対してオンになります。



動作中のページ



結論



この方法は、スパムに対する優れた武器としての地位を確立しており、その実装が行われたサイトでは事実上ゼロになりました。 この方法のユーザーのターゲットオーディエンスは、トラフィックの少ないサイトです。 このような保護は、主にjavascriptとcssの操作方法がわからない共有ホスティングサーバーにあるボットに対して有効です。 しばらくすると、スパマーがこの方法を回避するためのプログラムを作成するはずですが、この方法の使用が広まった場合のみです。 スパムボットに対する保護を強化するために、私たちの方法をcaptcha(人間の質問)と組み合わせることを検討できます。



関連リンク:



  1. ウィキペディア:ブラウザー使用の世界市場シェア。 カウントはロシア語ではありません。
  2. Spylog:グローバルなブラウザ市場シェア。 ロシア語で数えます。
  3. グラフィックキャプチャをハッキングするためのアルゴリズムの1つ
  4. ウィキペディア:キャプチャについて






コメント、追加、コメントを歓迎します。



All Articles