-1

Web サイトに 3 つのフィールド (メール、コメント、スパム防止) を備えた連絡フォームがあります。メールとコメント欄は機能します。スパム フィールドはオンラインで機能し、ユーザーを停止します (「スパム テストに失敗しました」というメッセージが表示されます) が、それでも間違った回答のメールが届きます。

スパムの質問は、「この風船は何色ですか」(青い風船の絵付き) です。

どんな助けでも大歓迎です。

<script type="text/javascript">
function hgsubmit()
{
if (/^\S+@[a-z0-9_.-]+\.[a-z]{2,6}$/i.test(document.hgmailer.email.value) == false) alert ("A valid email address is required.");
else if (/\S+/.test(document.hgmailer.comment.value) == false) alert ("Your email content is needed.");
else if (/blue|Blue/.test(document.hgmailer.spam.value) == false) alert ("You failed the spam test.");
else {
   document.hgmailer.submit();
   alert ('Thank you!\nYour email is sent.');
   }
}
</script>

それが問題なら、私はFormMailを使用しています。

4

1 に答える 1

3

スパム ボットはページでスクリプトを実行しません。データを投稿できるフォームの HTML コードをスクレイピングするだけなので、Javascript を使用しているボットから身を守ることはできません。

それらを防ぐには、フォームの内容に応じてリクエストを拒否できるサーバー側のコードが必要です。Javascript を使用して特定の情報をフィールドに入れることができます。サーバーに届いたときにそれが欠落している場合は、ブラウザーによって投稿されたものではないことがわかります。

于 2013-11-01T22:51:45.433 に答える