シンプルで基本的なフォームのスパム削減:Javascriptをチェックしていますか?

StackOverflow https://stackoverflow.com/questions/52359

  •  09-06-2019
  •  | 
  •  

質問

私たちのウェブサイト上のフォームスパムを減らそうとしています。(実際にはかなり最近のことです)。

スパマーはサイト上で Javascript を実行していないとどこかで読んだ記憶があるようです。

本当?もしそうなら、JavaScript が無効になっているかどうかをチェックして、それが無効になっているかどうかを判断していただけますか? おそらく それはスパムですか?

役に立ちましたか?

解決

JavaScript をオフにして実行している人がまだ多数います。

あるいは、CSS を使用してフォームスパムを阻止することにかなりの成功を収めました。基本的には、CSS を使用して非表示になっている入力フィールドとラベルを含めます (display: none;) 送信したら、フィールドに何か入力されているかどうかを確認します。

通常、私はフィールドに次のような指示を含むスパム フィルターとしてラベルを付けます。 ない フィールドには何でも入力できますが、新しいブラウザはすべてブロックを適切に非表示にします。

再キャプチャ 実装も驚くほど簡単です。

他のヒント

チェック http://kahi.cz/wordpress/ravens-antispam-plugin/ 素敵な答えを求めて

入れたら

<noscript><p><label for="websiteurl99f">Please type "e73053": </label><input type="text" name="websiteurl99f" id="websiteurl99f" /></p></noscript>
        <script type="text/javascript">/* <![CDATA[ */ document.write('<div><input type="hidden" name="websiteurl99f" value="e' + '73053" \/><\/div>'); /* ]]> */</script>

そのため、JavaScript ユーザーには何も表示されず、非 JS ユーザーには単語を入力するだけです。

スパム送信者があなたを具体的にターゲットにしている場合、それをコード化するのにそれほど時間はかかりませんが、スパム送信者による攻撃には良いはずです。

同様に、ダミー フィールドを追加し、CSS を使用してそれを非表示にすることも、ボットを騙す良い方法です。フィールドが送信された場合、おそらく人間以外の人物がフォームに記入したことがわかります。

フィールドに次のようなラベル/名前を付けると特に効果的です。 URL または Webサイト.

チェックできます - 非表示のフォームフィールドに特定の値を入力するJavaScriptがあります ページが読み込まれます。次に、ページがサーバーにポストバックされるときに、非表示のフォーム フィールドが期待値であることを確認します。存在しない場合は、JavaScript が実行されなかったことを意味します。

それがスパムであるとみなすべきかどうかについては、まったく別の話であり、確かな答えはありません。単純に <noscript> タグを付けて、JavaScript を有効にしないと送信できないことをユーザーに示します。

ただし、JavaScript を実行すると、スパマーは別の回避策を使用するだけです。:)

この方法をどこで見たのか思い出せませんが、スパムボットはフォームに記入するのが好きです。JavaScript で非表示にするフォーム フィールドを配置することを検討しましたか (ユーザーが JavaScript を持っていない場合は、このフィールドに入力しないでくださいと表示されます)。こうすることで、このフィールドに何かが入力された場合、スパムとして無視できます。

これで運が良かったでしょうか?一部のテキストベースのブラウザは基本的な JavaScript サポートを実装していると思いますが、スパムボットも同様にサポートしているのでしょうか?

それ以外の場合は、JavaScript を使用していないユーザーにはキャプチャを使用し、他のユーザーには自動 JavaScript チェックを使用することを検討しています。

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