Форум → Программирование → PHP для идиотов → Велосипед с капчей.
Велосипед с капчей.
Страницы: ← Предыдущая страница →
-
19 февраля 2010 г. 12:51, спустя 6 минут 45 секунд
ясный пень: подделать как нехуй делать. при этом N реальных пацанов будет послано нахуй. нехорошо!ιιlllιlllι унц-унц -
19 февраля 2010 г. 14:22, спустя 1 час 31 минуту 25 секунд
Вот - рабочий пример, написал на коленке. Потестил, нахуй не посылает. Желания реальных пацанов учёл ;)
Чтобы робот-спамер прошёл через такую форму он должен уметь эмитировать фокус на инпут либо парсер должен быть написан конкретно для этого случая. Если первое, то этот способ вообще не работает, если второе, то вашим сайтом всерьёз заинтересовались - радуйтесь, это успех, без тяжёлой артилерии уже не обойтись :D
Может я и неправ, поправьте :)<?php // test.php
if($_POST[$_SESSION['capcha']] != $_SESSION[$_SESSION['capcha']])
{
die('пшолнах');
}
else
{
// …
}
if($_SESSION)
{
session_destroy();
}
session_start();
$_SESSION['capcha'] = md5(time());
$_SESSION[$_SESSION['capcha']] = md5(time()*time());
?>
<script src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('#no_js').hide(); // привет, Павлик
$('input[type=submit]').show();
$('input').focus(function()
{
$('#<?=$_SESSION['capcha']?>').attr('value', '<?=$_SESSION[$_SESSION['capcha']]?>');
$('#no_js').html('Debug: Вы не робот, спасибо…').slideDown('slow');
});
});
</script>
<form method="post">
<input type="hidden" name="<?=$_SESSION['capcha']?>" value="" id="<?=$_SESSION['capcha']?>">
Ваше имя: <input type="text" name="username" value="">
<input type="submit" value="отправить" style="display:none">
<p id="no_js">Реальный пацан, включи JavaScript в своём браузере. С уважением, П. Дуров</p>
</form> -
19 февраля 2010 г. 14:43, спустя 20 минут 56 секунд
Вот - рабочий пример, написал на коленке. Потестил, нахуй не посылает. Желания реальных пацанов учёл ;)
Чтобы робот-спамер прошёл через такую форму он должен уметь эмитировать фокус на инпут либо парсер должен быть написан конкретно для этого случая. Если первое, то этот способ вообще не работает, если второе, то вашим сайтом всерьёз заинтересовались - радуйтесь, это успех, без тяжёлой артилерии уже не обойтись :D
Может я и неправ, поправьте :)<?php // test.php
if($_POST[$_SESSION['capcha']] != $_SESSION[$_SESSION['capcha']]) // равны. Сессия не инициирована следовательо $_POST[''] == '' => все капчу проходят
{
die('пшолнах');
}
else
{
// …
}
if($_SESSION) //тут фальш. Из предыдущего
{
session_destroy();
}
session_start(); //это выше нужно
$_SESSION['capcha'] = md5(time()); //может хотя бы соль добавить? *Придираюсь*
$_SESSION[$_SESSION['capcha']] = md5(time()*time()); // То же самое
?>
<script src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('#no_js').hide(); // привет, Павлик //если я не ошибаюсь, то надпись исчезнет через пару секунд. Не комильфо, если не ошибся.
$('input[type=submit]').show();
$('input').focus(function()
{
$('#<?=$_SESSION['capcha']?>').attr('value', '<?=$_SESSION[$_SESSION['capcha']]?>');
$('#no_js').html('Debug: Вы не робот, спасибо…').slideDown('slow'); //Почему слайд даун? :D
});
});
</script>
<form method="post">
<input type="hidden" name="<?=$_SESSION['capcha']?>" value="" id="<?=$_SESSION['capcha']?>">
Ваше имя: <input type="text" name="username" value="">
<input type="submit" value="отправить" style="display:none">
<p id="no_js">Реальный пацан, включи JavaScript в своём браузере. С уважением, П. Дуров</p>
</form>
Откоментил. Ну а в общем норм. Сойдет для сельской местности.Спустя 68 сек.Ну а если жс не включен, то извольте уважать реальных пацанов с оперой мини и включить обычную капчу. -
19 февраля 2010 г. 14:58, спустя 15 минут 3 секунды
Я юзаю банальную систему: делаю обычное текстовое поле с name'ом email (один из самых искомых роботами), собачу вокруг него <span></span>, спану даю класс стилевой, например .huy_uvidish, далее скрываю стилями этот спан (то есть, юзер уже не видит поле для ввода) и при отправке формы проверяю на заполненость переменной. Если она не пустая, то ничего не делаю (не отправляю мыло. не добавляю в базу, прочее), но пользователю отправляю ответ что мол все ок, ты охуенен. В результате спам уменьшается процентов на 70-90.
Васяц же в бложеге у себя писал как он спам-ботов подобными способами травил -
15 марта 2010 г. 22:16, спустя 24 дня 7 часов 17 минут
файлик с JS может быть отфильтрован каким-нибудь параноидальным фильтром или просто блять не успеть скачаться. ну всякое бывает. почему пользователь должен быть послан нахуй? и главное пользователь даже не поймет за что. это дурной тон полагаться на JS на 100%. он должен помогать, но не быть необходимым!
Золотые слова, "Юрий Венедиктович" :D
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!