私のニュースレターフォームのサブスクリプションで、今後のボットスパマーと戦っています。 私はフォームをシンプルにして手続きを速くしたいので、キャプチャを使わず、隠れたフォームを使ってボットを捕まえます。隠しフィールドをbotに対して効率的に設定していますか?
隠されたフォームを認識する方法が効率的かどうか、またそれをバイパスする方法はありますか?
私のニュースレターフォームのサブスクリプションで、今後のボットスパマーと戦っています。 私はフォームをシンプルにして手続きを速くしたいので、キャプチャを使わず、隠れたフォームを使ってボットを捕まえます。隠しフィールドをbotに対して効率的に設定していますか?
隠されたフォームを認識する方法が効率的かどうか、またそれをバイパスする方法はありますか?
効率的な方法の1つは、フォーム提出をJavaScriptに依存させることです。ボットは通常、JavaScriptをサポートしていません。しかし、完璧な解決策ではありません。
ボットは、少なくとも今のところCSSやJavaScriptを読んで苦労しています。
あなたは、W/Oキャプチャボットのスパムを防ぐことができますいくつかの方法があります。
<form method="post" action="send.php">
<ol>
<li>
<label for="name">Name</label>
<input type="text" name="name" value="">
</li>
<li>
<label for="email">Email</label>
<input type="text" name="email">
</li>
<!-- We hide this with CSS,that's why it has an ID. -->
<li id="user">
<label for="username">Username</label>
<input type="text" name="username">
</li>
<!-- //end -->
<li>
<input type="submit" name="submit" value="Send It!">
</li>
</ol>
</form>
ユーザー名フィールドは非表示になります見ることができるように。ボットはこれを認識できません。 これを実行する必要があるのは、バックエンドコードでこのフィールドが空であることを検証するだけです。
<?php
if(!isset($_POST['name'])) { die("No Direct Access"); } // Make sure the form has actually been submitted
$name = $_POST['name'];
$email = $_POST['email'];
$spam = $_POST['username']; // Bot trap
if($spam) { // If the hidden field is not empty, it's a bot
die("No spamming allowed bitch!");
} else {
// Process the form like normal
}
プロセスは、上記また、あなたは対象のより全体的なビューを取得するためにこれらの記事に見ることができ、モジュールBOTCHA Spam Prevention
を使用して容易に行うことができます。
Green-beastとweb designができますが、「隠された」だけでなく、ウェブ上のこのような数十の記事
は、私が直接htmlタグを使用することはできます見つけることができますか? – torr
IEではサポートされていないので、私はあなたに助言しません。私はdownvoteの理由を理解することはできません... – Thanos
私がやったことはダイレクトアクセスをリダイレクトすることです: 'die( ' ');' – chiappa