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

1. Разработаем алгоритм:
а) Берутся случайные числа.
б) Нам нужно количество кнопок.
в) Определим позицию правильной кнопки.
г) "Нарисуем" число.

2. Осуществим алгоритм:
а) Дадим случайное значение правильной кнопке $valok=rand(20,99); //случайное число от 20 до 99
б) Зададим количество кнопок $butkol=6; //6 кнопок
в) Зададим номер позиции $goodbut = rand(1,$butkol); //наша "хорошая" кнопка будет стоять на случайном месте от первого до последнего.
г) Нарисовать проблем не будет.

Теперь давайте объединим в кусок кода и всунем в наш скрипт:
if($res["dopsec"]=='2')
  {
  ?>
  <span style="vertical-align: middle;">
  <form method="post" action="vls.php?view=ok&ds=clicked" style="padding-top: 5px; vertical-align: middle;">
  <img src="captcha.php" align="middle"> <input type=text value='' size=10 maxlength=3 name="captcha">
   <input type="submit" value="Подтвердить просмотр">
  </form>
  </span>
  <?
  mysql_close($con);
  exit();
  }

На уже готовый:
if($res["dopsec"]=='2')
  { //3
  $butkol = 6;  
  $goodbut = rand(1,$butkol);
  $valok = rand(20,99)
  ?><table><td><fieldset><b>Выберите число: </b><img src="typetext.php?text=<?=$valok?>&size=20" align="absmiddle"></fieldset></td><?
  for($i = 1; $i <= $butkol; $i++)
  {
  $val = rand(20,99);
  if($i == $goodbut)
  {
  $_SESSION["itog"] = $valok;
  $val = $valok;
  }
  ?><td><form action="vls.php?view=ok&ds=clicked" method="POST"><input type="hidden" name="captcha" value="<?=$val?>"><input type="submit" value="<?=$val?>"></form></td>
  <?
  }
/*закончилась))0_о*/
?></table>
  <? exit();
  }

И выше кусок:
if($res["dopsec"]=='2')
  {
  $captcha=$_POST["captcha"];
  $ver=$_SESSION["captcha"];
  }

Замените на:
if($res["dopsec"]=='2')
  {
  $captcha=$_POST["captcha"];
  $ver=$_SESSION["itog"];
  }

Итак. Мы получили каптчу "выбор цифры". Саму цифру мы нарисовали шрифтом, каким у нас написано название сайта. Но, чтобы каптча помещалась и не прокручивалась надо открыть view.php и в строке:
<frameset rows="31,25,*">

Сменить высоту фрейма с 31 на 58. Думаю, будет достаточно.

Перенося статью, я не мог не заметить уязвимости в открытом коде. Немного поразмыслив даю подсказку, как сделать его более защищённым.

Вернёмся к уже отредактированному success.php

Находим:
if($i == $goodbut)
  {
  $_SESSION["itog"] = $valok;
  $val = $valok;
  }

Следом вставляем:
$val=md5($val);

Далее выше находим:
  $ver=$_SESSION["itog"];

Заменяем на:
$ver=md5($_SESSION["itog"]);

Пробуйте.

P.S. Хотите выгодно вложить свои средства и не прогореть? Тогда воспользуйтесь калькулятором вкладов и рассчитайте процент не отходя от компьютера.


Рубрика: Бесплатное » Дополнения   |   Автор: Alex   |   Просмотры: 3719
Комментариев: 25
Публикаций: 0
ICQ: --
- 22 +
  Автор: boni   |   Группа: V.I.P.   |   Дата: 23 марта 2011  
кто ставил - отпишитесь плиз...
Комментариев: 18
Публикаций: 0
ICQ: --
- 1 +
  Автор: rusip   |   Группа: Пользователи   |   Дата: 02 апреля 2011  
На кнопках вместо цифр- длинная вереница разных символов. И каптча (цифра) не помещается.
Комментариев: 31
Публикаций: 0
ICQ: 412467057
- 3 +
  Автор: Metallist95   |   Группа: Пользователи   |   Дата: 25 августа 2011  
не легче было файл кинуть, чтобы не париться в написании и не парить других? facepalm
Комментариев: 738
Публикаций: 50
ICQ: --
- 4 +
  Автор: Green-wm   |   Группа: Пользователи   |   Дата: 26 августа 2011  
Цитата: Metallist95
не легче было файл кинуть, чтобы не париться в написании и не парить других? facepalm

Дорогой мой, а этот файл у всех может быть разным. facepalm
Комментариев: 6
Публикаций: 0
ICQ: --
- 0 +
  Автор: bi333on   |   Группа: Пользователи   |   Дата: 24 октября 2012  
как избавиться от длинных цифро-числовых значений в самих кнопках, кто нить подскажет?
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.