Устанавливает ли скрытое поле против бота?

Я борюсь с будущими спамерами ботов для подписки на рассылку новостей. Я хочу, чтобы форма просто делала процедуру быстрой, поэтому я не использую капчу, а скрытую форму для ловушек ботов.

Является ли это эффективным, или боты знают, как распознать скрытую форму и будут обходить его?

Ответ 1

Боты борются с чтением CSS или JavaScript, по крайней мере на данный момент.

Некоторые способы предотвращения спама бота без капчей:

            <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 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 a bot
                die("No spamming allowed bitch!"); 
            } else {
                // Process the form like normal
            }

Процесс выше можно сделать проще с помощью модуля BOTCHA Spam Prevention

Также вы можете взглянуть на эти статьи, чтобы получить более полное представление о предмете.

Green-beast и веб-дизайн, но вы можете найти десятки статей, подобных этому в Интернете, а также

Ответ 2

Один из эффективных способов состоит в том, чтобы представление формы зависело от JavaScript. Боты обычно не поддерживают JavaScript. Это не идеальное решение, хотя..