Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита от флуда или подделка HTTP_REFERER
 
 автор: tima2010   (13.01.2012 в 15:32)   письмо автору
 
 

Привет! Читаю статью - http://www.softtime.ru/article/index.php?id_article=35

нашел метод защиты от флуда таким способом
<?php 
  
// $site_addres можете поменять на свое  
  // но лучше определить его в "общем" файле  
  
if ($_SERVER['HTTP_REFERER'] =! $site_address) die;  
?>


далее написано что HTTP_REFERER можно подделать, я много раз это слышал, но для собственного понимания хотел бы у вас спросить, как их подделывают? каким образом работает обход такой простенькой защиты?

  Ответить  
 
 автор: Sfinks   (13.01.2012 в 15:58)   письмо автору
 
   для: tima2010   (13.01.2012 в 15:32)
 

Например так:
<?php
  $ch 
curl_init("http://server.ru/");
  
curl_setopt($ch,CURLOPT_REFERER,"http://sajt_otkuda_my_pereshli/stranica/otkuda/my/pereshli.html");
  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  
$page curl_exec($ch);
  
curl_close($ch);
?>

  Ответить  
 
 автор: tima2010   (13.01.2012 в 16:28)   письмо автору
 
   для: Sfinks   (13.01.2012 в 15:58)
 

понятно, при помощи curl

Выходит что лучше использовать сессии? А вариант с сессиями защитит на 99 %

<?php 
// файл 1.php
  // Инициируем сессию 
  
session_start(); 
?> 
<form action=handler.php method=post> 
Имя : <input type=text name=name> 
Пароль : <iput type=password name=pass> 
<input type=submit name=send value=Отправить> 
<input type=hidden name=session_id value=<?php echo session_id();?>>  
</form>

<?php 
// файл 2.php
  // Инициируем сессию 
  
session_start(); 
  
// Сравниваем переданный идентификатор из формы с 
  // текущим идентификатором сессии 
  
if($_POST['session_id'] != session_id()) 
  { 
    exit(
"Попытка передачи данных с другого хоста. Скрипт остановлен."); 
  } 
  
// Дальнейшая обработка данных... 
?>

  Ответить  
 
 автор: Sfinks   (13.01.2012 в 17:13)   письмо автору
 
   для: tima2010   (13.01.2012 в 16:28)
 

А что мешает передать $_POST['session_id'] ?
Ничего.
Это тоже не защита.
Вернее защита, но от начинающих парсеров =)
Совсем начинающих.

  Ответить  
 
 автор: tima2010   (13.01.2012 в 18:18)   письмо автору
 
   для: Sfinks   (13.01.2012 в 17:13)
 

Посоветуйте пожалуйста тогда как защититься от "не начинающих"

  Ответить  
 
 автор: tvv123456   (13.01.2012 в 18:48)   письмо автору
 
   для: tima2010   (13.01.2012 в 18:18)
 

CAPTCHA - посмотрите по ссылочке, ботам пока еще не удалось прогрызть. По крайней мере я не слышал. ну и конечно не глушить начисто страницу, а просто выводить сообщение что форма заполнена некорректно(неверно введены контрольные цифры)

  Ответить  
 
 автор: Sfinks   (13.01.2012 в 21:02)   письмо автору
 
   для: tvv123456   (13.01.2012 в 18:48)
 

Слышал я тут же от cheops'a что есть какие-то баевские сети, что уже и каптчу научились ломать, но мне еще такие умные боты не попадались (тьфу-тьфу-тьфу). Так что для неавторизованного посетителя самое надежное - это каптча. Но самое присамое надежное это авторизация =)

  Ответить  
 
 автор: tvv123456   (13.01.2012 в 21:51)   письмо автору
 
   для: Sfinks   (13.01.2012 в 21:02)
 

Капчу можно только распознать. Сломать ее можно, если только код капчи в каком либо виде передается через пользователя. Распознать символы на картинке задача не простая. Даже стандартные шрифты такие проги как FineReader не всегда верно распознают. Капчу на которую я дал ссылку пока не прогрызли, а если вы с этим не согласны прошу дать ссыль на скрипт который может распознать 80% изображений которые я дам

Насчет авторизации не согласен. Без капчи и она достаточно несложно обходиться

Притча:
Поставил тут один знакомый себе старую версию форума phpbb. Там была и капча(правда простенькая) и авторизация. Но все равно ежедневная куча спама не самого пристойного содержания и от разных авторизованных пользователей. Сразу оговорюсь что была включена опция проверки электронного адреса. Более менее приличному боту авторизация не проблема. Единственная сложность, что под конкретный сайт немного придеться корректировать алгоритм, но зато бот сможет создавать ежедневно тысячи пользователей( и все на разные электронные адреса!!!). Как понимаете банить такую уйму народа тяжело.
Так что капча это самое надежное пока.
Ну можно конечно создавать еще свои правила портала:, допустим пользователь не имеет права создавать новые темы, пока не оставит n-ое количество ответов и т.п. При создании каптчи тоже много нюансов есть, но пока этот способ в моих глазах самый надежный, но с ним можно легко переборщить и отпугнуть пользователей :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования