Jump to content
  • 0

Без капчевая спам-защита


Yahoo!
 Share

Question

Перечитал весь топик на хабре

Практически так и не понял, чего хочу)))

Понял, что нельзя использовать:

1. проверку, двигалась ли мышь (клаву никто не отменял)

2. бан по айпи, тобишь определение айпи бота

3. проверку на быстрое/медленное заполнение

4. JS (сайт будет не доступен, только если выключить монитор)

5. не семантичные невидимые дивы и в них текстовые поля (я за семантику)

Прочитав, все комменты пришёл к выводу, что хоть регистрацию вешай=)

Я всё же склоняюсь к реализации какой-нибудь ловушки на стороне сервера, не знаю только какой, и проверку РЕФЕРЕРА. Правда вроде легко обходиться, но с моей-то посещаемостью))

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Кстати я давно размышлял, а нельзя ли обойтись без капчи?

Я поступил так: я написал на джаве скрипт,

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

Дальше пользователь вводит числа и каждое число записывается в новый массив, а потом два массива сравниваются.

Но почему то мне всегда казалось, что в таком скрипте есть какой то изъян...

Link to comment
Share on other sites

  • 0

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

З.Ы. ВовчиГ, не смущай людей своими бредовыми идеями. :)

Link to comment
Share on other sites

  • 0
Кстати я давно размышлял, а нельзя ли обойтись без капчи?

Я поступил так: я написал на джаве скрипт,

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

Дальше пользователь вводит числа и каждое число записывается в новый массив, а потом два массива сравниваются.

Но почему то мне всегда казалось, что в таком скрипте есть какой то изъян...

Пишете сайты на Java? И, да, «однозначное число» называется «цифра».

Link to comment
Share on other sites

  • 0
Так есть ли какой нить изъян в моём скрипте?

я думаю ошибка где-то совсем рядом:

затем все эти числа пихаются в массив.
Дальше пользователь вводит числа и каждое число записывается в новый массив, а потом два массива сравниваются.

:)

Link to comment
Share on other sites

  • 0

Моё мнение такое, что нет и не может быть абсолютной защиты, поэтому надо смотреть непосредственно на ресурс. Вот наиболее простые методы защиты:

1.Добавление лишних полей в блоке с display: none. Например, полей с названием url, website, name (имя записывать в поле с названием, например «qwerty»). Если они вдруг оказались заполнены, то это стопудово бот.

2. Генерировать настоящий action яваскриптом, большиство ботов не умеют яваскрипт.

3. Вообще всё сделать аяксом. По всё той же причине.

4. Банальная каптча. Хотя, их распознают. Даже есть специальные «сервисы», где людям платят за распознавание каптч. Но можно использовать не цифробуквенные, а иные виды, которые не так популярны и потому труднее распознаются.

5. Наиболее эффективная система, наверное, инвайты — как на хабре, но тут, конечно, много минусов.

Используя эффективно все эти методы защиты, можно добиться относительно премлемых результатов.

А можно не описывать еще один массив и

сравнивать каждое число с элементом массива.

Каптча на яваскрипте не будет работать. Вообще. Никогда. Это самый глупая идея по защите от спама в мире.

Link to comment
Share on other sites

  • 0
А можно не описывать еще один массив и

сравнивать каждое число с элементом массива.

А теперь объясните, самому себе ибо я(как и многие тут) правильный ответ знаю, почему ваш метод не является капчей? (а для этого посмотрите определение слова CAPTCHA). После ответа на эти вопросы задайте себе ещё один последний: зачем на яваскрипте создавать что-то - то, что заведомо известно клиенту? вы делаете защиту от кого ? роботы знают что творится на стороне клиента.

Каптча на яваскрипте не будет работать. Вообще. Никогда. Это самый глупая идея по защите от спама в мире.

как и установка пароля на страницу с использованием javascript :)

Link to comment
Share on other sites

  • 0

Вычитал из книжки один способ.

<?php 
session_start(); // запускаем сессию
// сравниваем настоящий идентификатор сессии с переданным из формы
// если они не совпадают, сценарий прекращает свою работу
// так же от себя добавлю проверку РЕФЕРЕРА
if(empty($_SERVER['HTTP_REFERER']) or $_POST['ssid'] != session_id()) die("Спамер;) Мы тебя ждали=)");
?>
....
<input type="hidden" name="ssid" value="<?php echo session_id(); ?>">
</form>

Что скажите?

Моё мнение такое, что нет и не может быть абсолютной защиты, поэтому надо смотреть непосредственно на ресурс. Вот наиболее простые методы защиты:

1.Добавление лишних полей в блоке с display: none. Например, полей с названием url, website, name (имя записывать в поле с названием, например «qwerty»). Если они вдруг оказались заполнены, то это стопудово бот.

2. Генерировать настоящий action яваскриптом, большиство ботов не умеют яваскрипт.

3. Вообще всё сделать аяксом. По всё той же причине.

4. Банальная каптча. Хотя, их распознают. Даже есть специальные «сервисы», где людям платят за распознавание каптч. Но можно использовать не цифробуквенные, а иные виды, которые не так популярны и потому труднее распознаются.

5. Наиболее эффективная система, наверное, инвайты — как на хабре, но тут, конечно, много минусов.

Используя эффективно все эти методы защиты, можно добиться относительно премлемых результатов.

На хабре действительно защита ещё та, но для блога инвайты Оо, JS неохото использовать, лучше аналогично на сервере что-нибудь сделать.

Link to comment
Share on other sites

  • 0
		if (isset($_SESSION['flag']) && (time()-$_SESSION['flag'] < 60))
{
echo '<h1>Защита от повторного обновления! Нужно подождать 60 сек...</h1>';
}
else
{
запрос к бд
echo '<h1>Информация успешно обновлена в базу!</h1>';
$_SESSION['flag']=time();
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy