[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Капча
vinnie
Привет! Как Вам такая капча? Сможет ли спам обойти её защиту?


<?php
session_start ();
if (isset ($_POST['ok']))
{
$code = !empty ($_POST['code']) ? trim ($_POST['code']) : NULL;
if (empty ($_SESSION["code"]) || $_SESSION["code"] != $code)
echo "Неверный код";
}
?>

<form action="" method="post">

<
p><label>Введите код с картинки</label><br />
<
img src="55.php" />
</
p>

<
p><input type="text" name="code" />
</
p>

<
p><input type="submit" name="ok" />
</
p>

</
form>


А вот код самой капчи

<?php
//Запускаем сессию
session_start ();
//Генерим код
$_SESSION["code"] = mt_rand (10000, 90000);
//Говорим браузеру, что это картинка
header ("Content-type: image/png");
//Создаем пустое изображение
$img = imagecreatetruecolor (100, 40);
//генерим случайные цвета
$col = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
$col2 = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
$col3 = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
$col4 = imagecolorresolve ($img, 255, 255, 255);
$col5 = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
//Создаем линии на картинке
imageline ($img, mt_rand (0, 10), mt_rand (0, 20), mt_rand (80, 90), mt_rand (30, 35), $col);
imageline ($img, mt_rand (90, 95), mt_rand (0, 20), mt_rand (0, 20), mt_rand (30, 35), $col2);
imageline ($img, mt_rand (40, 45), mt_rand (0, 20), mt_rand (30, 32), mt_rand (30, 35), $col3);
imageline ($img, mt_rand (60, 65), mt_rand (0, 20), mt_rand (80, 90), mt_rand (30, 35), $col5);
//Пишем сгенерированные выше цифры на картинку
imagestring ($img, 5, 30, 15, $_SESSION["code"], $col4);
//И, наконец, выводим картинку (капчу)
imagepng ($img);




Спустя 1 час, 14 минут, 25 секунд (4.12.2010 - 11:42) vinnie написал(а):
А вот вариант с буквами

<?php
//Запускаем сессию
session_start ();
//Генерим код
$array1 = range ('A', 'Z');
$array2 = range ('a', 'z');
$merge = array_merge ($array1, $array2);
shuffle ($merge);
$str = implode ("", $merge);
$captcha = substr ($str, 0, 6);
$_SESSION["code"] = $captcha;
//Говорим браузеру, что это картинка
header ("Content-type: image/png");
//Создаем пустое изображение
$img = imagecreatetruecolor (100, 40);
//генерим случайные цвета
$col = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
$col2 = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
$col3 = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
$col4 = imagecolorresolve ($img, 255, 255, 255);
$col5 = imagecolorresolve ($img, mt_rand (0, 255), mt_rand (0, 255), mt_rand (0, 255));
//Создаем линии на картинке
imageline ($img, mt_rand (0, 10), mt_rand (0, 20), mt_rand (80, 90), mt_rand (30, 35), $col);
imageline ($img, mt_rand (90, 95), mt_rand (0, 20), mt_rand (0, 20), mt_rand (30, 35), $col2);
imageline ($img, mt_rand (40, 45), mt_rand (0, 20), mt_rand (30, 32), mt_rand (30, 35), $col3);
imageline ($img, mt_rand (60, 65), mt_rand (0, 20), mt_rand (80, 90), mt_rand (30, 35), $col5);
//Пишем сгенерированные выше цифры на картинку
imagestring ($img, 5, 30, 15, $_SESSION["code"], $col4);
//И, наконец, выводим картинку (капчу)
imagepng ($img);

Спустя 2 минуты, 27 секунд (4.12.2010 - 11:44) vital написал(а):
а мы все взяли и в уме по коду нарисвовали, ага. Не проще скрином, а?
пс.
Давно доказано, что вместо капчи лучше простые вопросы(2+2, какой день недели завтра, какой мужчина жил на крыше и т.п.). Ибо текст автоматом распознать можно, а вот искуственный интеллект еще не придумали.

Спустя 2 минуты, 13 секунд (4.12.2010 - 11:46) vinnie написал(а):
vital

достаточно просто скопипастить этот код себе, и капча появится)))
Цитата

Давно доказано, что вместо капчи лучше простые вопросы(2+2

твои 2+2 можно легко обойти, задать роботу по умолчанию цифру 4 и все!!!

Спустя 2 минуты, 15 секунд (4.12.2010 - 11:49) kirik написал(а):
Слабенькая капча.
- буквы одного цвета
- всегда в одном месте
- на одном уровне
- одним размером
- одним шрифтом

Мой тебе совет: чтобы сделать хорошую капчу попробуй написать расшифровщик капчи (пока своей). Сразу все слабые места вылезут.

Спустя 1 минута, 20 секунд (4.12.2010 - 11:50) vinnie написал(а):
Цитата

расшифровщик капчи

эт как?

Спустя 1 минута, 18 секунд (4.12.2010 - 11:51) vinnie написал(а):
Цитата

- буквы одного цвета
- всегда в одном месте
- на одном уровне
- одним размером
- одним шрифтом

Ну это дело поправимое. Тут вопрос не в этом, а в том, пропустит ли оно спам или станет стеной перед ним?

Спустя 44 секунды (4.12.2010 - 11:52) vital написал(а):
Цитата
твои 2+2 можно легко обойти, задать роботу по умолчанию цифру 4 и все!!!

А генерить разные математатические выражения слабо?
т.е. пример не статичен, он генерится.

Как и вопросы можно просто показывать рандомом из базы в которой этих вопросов штук 20, скажем.

Спустя 1 минута, 6 секунд (4.12.2010 - 11:53) vital написал(а):
Цитата
эт как?

Эт взять картинку и распознать на ней цифры.
Вот только алгоритмы эти сложные для школьника.

Спустя 41 секунда (4.12.2010 - 11:54) vinnie написал(а):
vital

мне мой вариант больше нравится

Спустя 1 минута, 44 секунды (4.12.2010 - 11:55) kirik написал(а):
Цитата (vinnie @ 4.12.2010 - 03:51)
Тут вопрос не в этом, а в том, пропустит ли оно спам или станет стеной перед ним?

Яж говорю, что капча слабая, поэтому может стать только невысоким заборчиком smile.gif Если спамбот умеет расшифровывать капчи, то эта капча ему не помеха абсолютно. Да любая капча, которую разберет человек - не помеха. Сервис есть такой - индусы полцента за разгаданную капчу получают у себя в индии (это не шутка).

Спустя 58 секунд (4.12.2010 - 11:56) kirik написал(а):
Цитата (vinnie @ 4.12.2010 - 03:50)
эт как?

Ну скрипт напиши, который твою капчу будет в текст переводить. Ака finereader для капчи.

Спустя 16 секунд (4.12.2010 - 11:57) vital написал(а):
Цитата
Сервис есть такой - индусы полцента за разгаданную капчу получают у себя в индии

И рега по инвайтам, ага=)

Спустя 29 секунд (4.12.2010 - 11:57) vinnie написал(а):
kirik
что посоветуешь?)))

Спустя 1 минута, 22 секунды (4.12.2010 - 11:58) vital написал(а):
Цитата
kirik
что посоветуешь?)))

Цитата
Давно доказано, что вместо капчи лучше простые вопросы(2+2, какой день недели завтра, какой мужчина жил на крыше и т.п.). Ибо текст автоматом распознать можно, а вот искуственный интеллект еще не придумали.


Спустя 44 секунды (4.12.2010 - 11:59) kirik написал(а):
Цитата (vinnie @ 4.12.2010 - 03:57)
что посоветуешь?)))

Не париться и оставить как есть smile.gif Ну если нет желания помучить себя smile.gif Или поставь себе recaptcha

Спустя 1 минута, 7 секунд (4.12.2010 - 12:00) kirik написал(а):
Цитата (vital @ 4.12.2010 - 03:58)
Давно доказано, что вместо капчи лучше простые вопросы(2+2, какой день недели завтра, какой мужчина жил на крыше и т.п.).

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

Спустя 4 минуты, 36 секунд (4.12.2010 - 12:05) vital написал(а):
Цитата
опросы про мужчин отпадают сразу, если сервис мультиязычный

что мешает сделать вопросы на 2х-3х-Нти языках?

Спустя 54 секунды (4.12.2010 - 12:06) vital написал(а):
Цитата
уравнения тоже решаются на раз-два.

добавляем скобки, и фигсдва)

Спустя 1 минута, 57 секунд (4.12.2010 - 12:08) kirik написал(а):
Цитата (vital @ 4.12.2010 - 04:05)
что мешает сделать вопросы на 2х-3х-Нти языках?

Можно, но вопросы-то не бесконечные smile.gif

Цитата (vital @ 4.12.2010 - 04:06)
добавляем скобки, и фигсдва)

Чем уровнение со скобками сложнее рандомной строки? smile.gif

Спустя 4 минуты, 42 секунды (4.12.2010 - 12:12) vital написал(а):
Цитата
Можно, но вопросы-то не бесконечные

Порядка 10ти вопросов выше крыши. Если принципиально - можно секретарше в обязанность поставить менять их раз в месяц.
Цитата

Чем уровнение со скобками сложнее рандомной строки?

парсить сложнее? Если еще цифры сделать разных цветов, скобки подцветить.. Что-то сделать <font>-ом что-сто <span>-ом. А лучше менять их рандомно. и все=)

Спустя 1 минута, 37 секунд (4.12.2010 - 12:14) vinnie написал(а):
Цитата

Порядка 10ти вопросов выше крыши


легко можно подделать

Спустя 1 минута, 37 секунд (4.12.2010 - 12:16) kirik написал(а):
Цитата (vital @ 4.12.2010 - 04:12)
Что-то сделать <font>-ом что-сто <span>-ом.

Погодь.. ты вообще предлагаешь html'ный вариант? Так это же даже хитрых алгоритмов отделения знаков от фона и выравнивания оных не нужно писать smile.gif striptags, регулярки в руки и пошел smile.gif

Спустя 3 минуты, 9 секунд (4.12.2010 - 12:19) vital написал(а):
Цитата
регулярки в руки и пошел

в том и суть. Сломать можно что угодно, важно что бы стоимость взлома была выше профита. А ковыряния со всеми этими регулярками будет достаточно сложное. Хотя, конечно, про хтмл мой фейл. Не подумал про стриптакгс.

Спустя 52 секунды (4.12.2010 - 12:20) vinnie написал(а):
Kirik

вдобавок md5();

Спустя 1 минута, 29 секунд (4.12.2010 - 12:21) kirik написал(а):
Цитата (vinnie @ 4.12.2010 - 04:20)
вдобавок md5();

Эт про что?

Спустя 1 минута, 4 секунды (4.12.2010 - 12:22) vinnie написал(а):
это шутка такая)))))

Спустя 12 секунд (4.12.2010 - 12:22) vital написал(а):
Цитата
стриптакгс.

Ну блин.. Можно смайлики рандомно повставлять между цифрами, или там <img> с прозрачной картинкой сосвывать.. Короче, что бы парсить было сложно)
Суть в том, что если очень надо - то цифры с картинок распознают в почти 90 что-ли процентах случаев, если надо. Те же индусы как пример.
Я вот видел русский какой-то сервис, платный офк+рега по инвайтам. Так там вообще они разбирают почтти все возможные капчи. Рекапчу так точно.

Спустя 4 минуты, 38 секунд (4.12.2010 - 12:27) kirik написал(а):
Цитата (vital @ 4.12.2010 - 04:22)
Те же индусы как пример.

Да.. индусы Лингред точно не читали smile.gif

Цитата (vital @ 4.12.2010 - 04:22)
Короче, что бы парсить было сложно

Кстати да, можно вставлять "левые" числа, которые скрывать через css у юзера в браузере.

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

Спустя 6 минут, 1 секунда (4.12.2010 - 12:33) vital написал(а):
Цитата
можно вставлять "левые" числа, которые скрывать через css у юзера в браузере.

вооот! Ты понял мою мысль)
Цитата
а что делать, если на вопрос можно дать разный ответ? "карлсон", "карлосон" как обычная ошибка?

Ну.. если прицнипиально - можно сравнивать не просто ==, а каким нить алгоритмом не четкого сравнения, с коэффицентом скажем процентов 90.
Но имхо, с точки зрения юзабилити - при не правильном ответе на вопрос стоит вывести что-нить в духе, ваш ответ _такой-то ответ_ не верен. Попробуйте еще раз. И ответ подсвтетить. Опечатки зверь увидит и все поймет. А орфрографические ошибки.. Ну пусть вводит ответы пока ответом не будет слово, которое юзверь не введет правильно. Хоть писать научится)

Спустя 4 минуты, 51 секунда (4.12.2010 - 12:38) vinnie написал(а):
Цитата

с коэффицентом


Цитата

при не правильном


и после этого ты пишешь
Цитата


Хоть писать научится)



Спустя 10 минут, 31 секунда (4.12.2010 - 12:48) vital написал(а):
Цитата
и после этого ты пишешь

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

Спустя 7 минут, 24 секунды (4.12.2010 - 12:56) vinnie написал(а):
))))не смеши меня... в любом случае не ты. ты даже не знал, что этот код можно скопировать, чтобы появилась капча, просил скрин выложить)))))))))))) короче, тема закрыта

Спустя 1 день, 19 часов, 30 минут, 45 секунд (6.12.2010 - 08:27) vital написал(а):
Цитата
ты даже не знал, что этот код можно скопировать

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


_____________
Меньше теории, больше практики...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.