Используем простенький javascript код для защиты от спама | akvatopia.ru

Используем простенький javascript код для защиты от спама

Добрый вечер!

Сегодня хочу рассказать как я эффективно борюсь с регистрационным спамом на своих сайтах/проектах. Методика очень простая, в основе используется тот факт, что спамовый движки в большинстве своем просто парсят форму и не эмулируют работу js-скриптов на сайте и браузер целиком. Поэтому, просто добавляем в форму небольшой и простенький javascript код который меняет значение одного из полей формы при отправке. Тем самым браузеры будут посылать одно значение, правильное, измененное, а спам движки которые тупо парсят форму, будут посылать другое значение. Соответственно, остается только добавить в обработчике формы проверку и тем самым отсеивать весь спам.

Вот пример кода формы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form name="addForm" action="/humor/add.php" method="POST">
Название:
<input type="text" style="width: 550px;" name="title" value="">

Текст:
<textarea tabindex="1" style="height: 300px; width: 550px;" cols="100" rows="40" name="story"></textarea>

Ваше имя/ник или ссылка на автора (не обязательно):
<input type="text" style="width: 200px;" name="nick" value="">

<input type='hidden' id='magic' name='magic' value='5' />
<div align="center"><input type="submit" value=" Добавить " onclick="setStep();" ></div><br/>
</form>

<script language="javascript">
function setStep() {
    document.forms["addForm"].magic.value = 10;  
}
</script>

По-умолчанию в форме есть скрытое поле "magic", со значением "5". При клике в браузере (если включен javascript) оно меняется на 10.

В код на стороне обработчика формы (на сервере в php-скрипт) добавляем следующий код, например:

1
2
3
4
5
6
7
$magic = $_POST["magic"];
if ($magic == 10) {
    do_register($login, $password, $email);
} else {
    // this is spam
    echo "Site require javascript to work\n";
};

Вот и все.

Tweet
хорошоплохо (никто еще не проголосовал)
Loading...Loading...
0 Comments

Leave a Reply

Using Gravatars in the comments - get your own and be recognized!

XHTML: These are some of the tags you can use: <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>

Наши ссылки