X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Капча как обломить бота?
MetSerp
MetSerp
Topic Starter сообщение 21.1.2009, 15:48; Ответить: MetSerp
Сообщение #1


Статья не сочтите за рекламу
Тут приводится пример реализации капчи одну из несовершенств автор указал сам ее я с помощью Ворона ликвидировал но есть еще 1 ньюанс код собственно капчи правильный передается в адресе картинки то есть строка:
[php]echo "<img src=\"admin/engine/functions/captha.php?text=".$x."\">";
[/php] содержит в себе правильный ответ и спам боту не думаю что составляет большой труд ее оттуда забрать и вставить в нужное поле.
Всвязи с этим 2 вопроса
1 я прав? и боту действительно нетрудно отслдедить правильное значение капчи
2 если я неправ то почему?
2.1 если я прав то это можно как нибудь иначе сделать чтобы правильая капча нигде не светила
2.1.1 если нельзя то насколько это критично и имеет ли хоть какую то степень защиты такая капча
:unsure:
Ps jочень нун смайл с таблицей я ламер :rolleyes:
сейчас пробую убрать GET впринципе а в файле генерирующем картинку добавить запрос к БД где на основе полученного через суперглобальный массив SERVER ip вынимать из бд генерированное для него значение может получится но не уверен насколько такой метод валидин и нет ли чо попроще
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 21.1.2009, 16:30; Ответить: Webmaster_hb
Сообщение #2


зачем все так сложно ?

на странице с капчей сначала создается сессионная переменная и устанавливается ей значение
дальше ваш скрипт картинки данные для капчи берет из сессии
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Zippovich
Zippovich
сообщение 21.1.2009, 16:59; Ответить: Zippovich
Сообщение #3


Да, для данной цели код по GET гонять не стоит, лучше в сессию записывайте его.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
Topic Starter сообщение 22.1.2009, 12:33; Ответить: MetSerp
Сообщение #4


Итак что у меня получилось путем недюженных интелектуальных напряжений:
[php]<?
session_start();
$_SESSION['a'] = mt_rand(1,99);
$_SESSION['b'] = mt_rand(1,99);
$_SESSION['action'] = mt_rand(1,4);
?>[/php]Это у меня в страничке регистрации
[php]<?php
session_start();
$a = $_SESSION['a'];
$b = $_SESSION['b'];
$act = $_SESSION['action'] ;
if ($act == 1) $c = "+";
if ($act == 2) $c = "-";
if ($act == 3) $c = "*";
if ($act == 4) $c = "/";
$text = "$a $c $b";
Header("Content-type: image/gif");
$rgb=006633;
$idest = imagecreatetruecolor(60, 15);
$textcolor = imagecolorallocate($idest, 0,255,0);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
imagegif($idest);
imagedestroy($idest);
?>[/php]Код капчи
Все работает все берется прально и нигде не светит в коде но есть 4 вопроса:
1 Насколько кривым у меня получился код и как тут правильно сделать (стараюсь завязывать с програмированием в индийском стиле:sarcastic:)
2 текст в картинке прилипает к правому нижнему углу как выровнять его в центр картинки? (уже разобрался поковыряв функции)
3 можно ли сменить фон картинки а еще лучше поставить туда на фон свою картинку
(то что за фон отвечает переменная $rgb я знаю но она не принемает нормальный хекс :nea:(тут тоже немного разобрался из за того что это гиф он берет индекс цвета а не ргб Как его получить из ргб?)
4 Можно ли средствами GD искривить выходной текст на картинке,(заставить цифры прыгать или пустить их волной) а то так как я понимаю его тоже могут считать (правда уже сложные боты которые и как акробат ридер читать умеют)
Разобрался с 2мя вопросами и сам на них отвечу может кому пригодится:
3 цвет картинки задется индексом цвета rgb по причине того что картинка сохраняется в гиф для того чтобы получить этот индекс я воспользовался функцией imagecolorallocate() и получилось так:
[php]$rgb = imagecolorallocate($idest, 0, 102, 51);[/php] соответсвенно цифры здесь это привычный формат rgbвозможно есть более совершенные методы но мне о них неизвестно

2 отступы текста задаются в функции
[php]imagestring($idest, 4, 4, 4, $text, $textcolor);[/php]
[php]imagestring(файл, размер шрифта (1-5) , отступ слева, отступ сверху, текст который необходимо рисовать, цвет шрифта);[/php]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1119 26.3.2024, 14:13
автор: knezevolk
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
12 uahomka 2289 25.3.2024, 6:52
автор: Skyworker
Открытая тема (нет новых ответов) Как отозвать банковский платеж фрилансеру?
28 metvekot 3912 25.3.2024, 6:34
автор: Skyworker
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
23 freeax 3637 24.3.2024, 20:55
автор: Liudmila
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1929 23.3.2024, 7:41
автор: Room


 



RSS Текстовая версия Сейчас: 28.3.2024, 21:41
Дизайн