Форум: "Прочее";
Текущий архив: 2009.06.14;
Скачать: [xml.tar.bz2];
ВнизРеализация Captcha Найти похожие ветки
← →
CoderM (2009-04-09 19:48) [0]Собственно, доброго времени суток, товарищи.
Недавно в одной из моих программ (клиент-сервер) появилась необходимость реализации капчи (картиночки с кодом для защиты от брутфорса). Т.е. на запрос клиента об авторизации - сервер отсылает капчу. Необходим компонент или код, реализующий создание РЕАЛЬНО сложной её. Где такое найти, а? Или как на канвасе или битмапе жестко искажать буквы, писать под наклоном, волнами (как в яндексе).
ПОГУГЛИТЬ - не предлагать. Уже. Не нашел ничего подходящего, если б нашел - не писал бы сюда.
← →
Mystic © (2009-04-09 20:20) [1]Ну придумай некоторое отображение x" = f(x,y), y" = g(x,y) и подбирай его параметры. Волны это тригонометрические функции. Наклон это простой поворот
← →
test © (2009-04-09 21:28) [2]На чем пишеш?
← →
DVM © (2009-04-09 21:31) [3]
> CoderM (09.04.09 19:48)
если и серверу и клиенту доступен интернет, то можно взять капчу со специальных сервисов - reCaptcha например. У нее API есть специальный.
← →
VICTOR_ (2009-04-10 12:03) [4]На PHP это может выглядеть примерно так
> $im=imagecreatefromjpeg("back.jpg");//файл с фоном
> $tc=imagecolorallocate($im, 128,64,0);//цвет кода
> $tp1=imagecolorallocate($im, 255,000,000);//цвет пикселей
> шума1
> $tp2=imagecolorallocate($im, 000,255,000);//цвет пикселей
> шума2
> $tp3=imagecolorallocate($im, 000,000,255);//цвет пикселей
> шума3
> for($i=1;$i<99;$i++) imagesetpixel($im, Rand(1,130), Rand(1,
> 30), $tp1);//шумы1
> for($i=1;$i<99;$i++) imagesetpixel($im, Rand(1,130), Rand(1,
> 30), $tp2);//шумы2
> for($i=1;$i<99;$i++) imagesetpixel($im, Rand(1,130), Rand(1,
> 30), $tp3);//шумы3
>
> $arr_letter=array("A","B","C","D","E","F","G","H", "I","J",
> "K","L","M","N","P","Q","R","S","T","U","V","W","X","Y",
> "Z");
> $arr_x=array(24,40,56,72,88);//расстановка попикселям букв
> $arr_kod=array();//font.ttf - arial.ttf
> for ($i_zn=0;$i_zn<5;$i_zn++){$i_rand=$arr_letter[rand(2,
> 24)];imagettftext($im, 15,rand(-10,20),$arr_x[$i_zn],rand(20,
> 24),$tc,"font.ttf", $i_rand);$arr_kod[]=$i_rand;}
>
← →
Дмитрий С © (2009-04-10 16:32) [5]У меня появилась недавно идея рисовать буквы "псевдографикой". Например:
asdfasd f sfgfgdfg ssssfg
s fad s dfg d fgd
c f dfds d fg df
d s d g f f
f d d s f d
g d d d f s
d dfd f f f g
ddfsaga sdffdsdffgsfs dfsgs ffgdfs
И далее с вариациями - наезд букв друг на друга и т.п. Все это передается в бразуер реально буквами и выводится с помощью абсолютно спозиционированных блоков (DIVов). Браузеры отрисуют на-ура, а вот кулхацкерам реально придется попотеть, чтобы только получить картинку для распознания или публикации ее где-нибудь:)
← →
stas © (2009-04-10 17:20) [6]CoderM (09.04.09 19:48)
если ASP.NET могу дать на C#
← →
DVM © (2009-04-10 18:42) [7]
> Дмитрий С © (10.04.09 16:32) [5]
Это уже давно используется, ты не первый.
> Браузеры отрисуют на-ура, а вот кулхацкерам реально придется
> попотеть, чтобы только получить картинку для распознания
Есть более простой способ: графическая картинка капчи режется на несколько кусочков и они загоняются в таблицу. Таблица выводится. Число кусочков и число ячеек таблицы можно сделать случайным, что сделает невозможным автоматическую сборку картинки в единое целое программой для спама. Да и никто даже заморачиваться не будет.
← →
Rouse_ © (2009-04-10 18:44) [8]Рисуй трехмерное изображение узнаваемых предметов (стол, шкаф, стул, заясь - волк :) и пусть пользователь вводит их определение. Уж получше будет того что сейчас идет в виде каптчи, когда среди кучи мусора не поймешь что за буквы нарисованы.
← →
Германн © (2009-04-10 19:19) [9]
> Rouse_ © (10.04.09 18:44) [8]
А заодно и русский подучит :)
← →
DVM © (2009-04-10 19:19) [10]
> Rouse_ © (10.04.09 18:44) [8]
> заясь - волк
На Rapidshare одно время были буквы с кошками и собаками, внизу подпись считать кошек или собак, первое время я не мог понять, почему капча не подходит, надпись внизу я конечно не читал :)
← →
Rouse_ © (2009-04-10 19:29) [11]
> На Rapidshare одно время были буквы с кошками и собаками,
> внизу подпись считать кошек или собак, первое время я не
> мог понять
У меня на рапиде премиум, сам не видел - но люди рассказывали. Достаточно многолитровая по глубине выпитого, как я понял, была идея :)
← →
Дмитрий С © (2009-04-10 19:32) [12]
> DVM © (10.04.09 18:42) [7]
Очень хорошо, что используется, значит идея не лишена смысла :)
> Rouse_ © (10.04.09 18:44) [8]
Слишком сложно и слишком мало вариантов, все-равно можно методом "тыка" брутофорсить :) К тому же нет защиты от показов твоей капчи на порно-сайтах.
← →
antonn © (2009-04-10 19:33) [13]вроде на рапиде.ком сейчас обычные буквы (пару раз натыкался, тоже премиум :) )
← →
DVM © (2009-04-10 20:04) [14]
> antonn © (10.04.09 19:33) [13]
> вроде на рапиде.ком сейчас обычные буквы
Они убрали этих кошек и собак. Они мало того что плохо отличимы, так еще надо понять что требуется сделать. Это несколько неочевидно. Еще забавно было когда они появились - на капче 6 букв, поле для ввода только на 4 :)
← →
sniknik © (2009-04-10 21:51) [15]> У меня появилась недавно идея рисовать буквы "псевдографикой". Например:
http://www.hovinne.com/dev/jquery/chartotable/
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.06.14;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c