9

Проверка компьютерной грамотности: а вы точно человек?

time.com

Каждому пользователю сети Интернет во время своих похождений приходилось останавливаться и выполнять это небольшое странное задание: посмотреть на картинку, изображающую волнистые, расплывчатые и искривленные буквы, и напечатать эти буквы в специальном поле. Бывает, что с первого раза не получается, и вам приходится печатать буквы заново, но, в общем, вы об этом сильно не задумываетесь. У этой строчки букв есть название — CAPTCHA (капча), и служит она в качестве проверки: если вы правильно разобрали все буквы, значит, вы доказали компьютеру, что являетесь человеком. [ ↓ ]

4

Боремся со спамом без captcha

freecodesnippet.com

Этот метод основывается на том, что спам-боты, как правило, настолько тупы, что позорят своих дедушек (разработчиков).

Идея

Для тех, кто еще не в курсе, имеем следующее:

1. Добавьте к своей форме поле для ввода с каким-нибудь интересным именем, например ‘URL’.

<input NAME=”url” TYPE=”text” />

2. Спрячьте это поле при помощи CSS, чтобы (настоящие) пользователи не могли увидеть его напрямую.

<style>
.style1 {
display: none;
}
</style>
<p CLASS=”style1″><input NAME=”url” TYPE=”text” /></p>

3. При обработке формы, проверяйте, содержит ли ‘URL’ какое-либо значение. Если это так, значит удалите этот пост, либо отложите его для модерации.

if (strlen(trim($_POST['url'])) > 0){
//It is a spam, reject this post here
}

4. Не поняли? Почему это работает? А работает это просто потому, что настоящие пользователи не видят спрятанное поле и не заполняют его, в то время как боты и видят, и заполняют.

WordPress

У меня были проблемы со спамом на этом сайте, но с тех пор как я применил эту хитрость, спама пока не было. Я вставил код в форму комментариев (wp-comments-post.php):

if (strlen(trim($_POST['url'])) > 0){
do_action(‘comment_closed’, $comment_post_ID);
wp_die( __(‘Sorry, comments are closed for this item.’) );
}
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['plugin9']);
$comment_content = trim($_POST['comment']);

© diggreader.ru