Меняем каптчу во фрейме при просмотре ссылок

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

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"]);


Пробуйте.

Автор публикации

не в сети 13 лет

Alex

Комментарии: 0Публикации: 166Регистрация: 19-02-2011

Понравилась статья? Поделись в соц. сетях:

Похожие новости

Отправить комментарий

wpDiscuz
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля