могут вставить в index.php и йа упаду пат стол хДД куда чего непонял?
А какже гугль янексъ, у них нет разрешения и куки они не берут А вот если вдруг окажется N просмотров за N времени то автоматом вкл защита от ботов)))) Дело техники! Всё автоматом
Сегодня один мой знакомый попросил помочь с программой для вычисления наименьшего расстояния между двумя точками, но по скольку я не знаю ничё кроме пхп написал скрипт! всё на тарелочке вводиш в форму а скрипт ответ выдаёт <?php echo" <form action='' method='post'> Координаты по оси X для первой точки - <input type='text' name='A_x' value='100'><br> Координаты по оси Y для первой точки - <input type='text' name='A_y' value='100'><br> <br><br> Координаты по оси X для второй точки - <input type='text' name='B_x' value='200'><br> Координаты по оси Y для второй точки - <input type='text' name='B_y' value='200'><br> <input type=submit value='Вычеслить!'> <hr> "; if(isset($_POST['A_x'])){$A_x=$_POST['A_x']; if(isset($_POST['A_y'])){$A_y=$_POST['A_y']; if(isset($_POST['B_x'])){$B_x=$_POST['B_x']; if(isset($_POST['B_y'])){$B_y=$_POST['B_y']; echo"Координата по оси X для первой точки - ".$A_x."<br>"; echo"Координата по оси Y для первой точки - ".$A_y."<br>"; echo"Координата по оси X для второй точки - ".$B_x."<br>"; echo"Координата по оси Y для второй точки - ".$B_y."<br>"; if($A_x==$B_x){ if($A_x>$B_x){$RASTOYANIE=$A_x-$B_x;echo$RASTOYANIE;die();} if($B_x>$A_x){$RASTOYANIE=$B_x-$A_x;echo$RASTOYANIE;die();} } if($A_y==$B_y){ if($A_y>$B_y){$RASTOYANIE=$A_y-$B_y;echo$RASTOYANIE;die();} if($B_y>$A_y){$RASTOYANIE=$B_y-$A_y;echo$RASTOYANIE;die();} } if($A_x > $B_x){$deystvie1=$A_x-$B_x;}else{$deystvie1=$B_x-$A_x;} echo"Расстояние между проекциями точек на координатную ось X - ".$deystvie1."<br>"; if($A_y>$B_y){$deystvie2=$A_y-$B_y;}else{$deystvie2=$B_y-$A_y;} echo"Расстояние между проекциями точек на координатную ось Y - ".$deystvie2."<br><br><br>"; $RASTOYANIE_v_kvadrate=$deystvie1*$deystvie1+$deystvie2*$deystvie2; // функция sqrt вычесляет квадрат числа $RASTOYANIE=sqrt($RASTOYANIE_v_kvadrate); echo"Наименьшее расстояние между точками - ".$RASTOYANIE."";die(); }}}} ?>
TheMazzahaka а ты потести VPN)))
с этим боты становятся просто не актуальны ибо юзать им можно как и простым юзерам
ну тогда вот тебе function time_pages_load($deletetime,$maxpages,$pertime,$page_for_ban){ $time=time(U); $time_detected=$time-$pertime; $ip = $_SERVER['HTTP_CLIENT_IP'];if($ip==""){$ip=$_SERVER['REMOTE_ADDR'];} $query = "select time_load from page_load_detected where ip='$ip' and time_load>'$time_detected'"; $result=mysql_query($query);$result=mysql_num_rows($result); if($result >= $page_for_ban){ $htaccess = @fopen(".htaccess","a+"); $deny = "deny from ".$ip." \r\n"; fwrite($htaccess,$deny); fclose($htaccess); die("<div class='warning'>Вы слишком часто листаете страницы, этим вы нагружаете сервер, просматривате страницы не больше чем ".$maxpages." страниц в ".$pertime." секунд(ы) <font color='red'>На данный момет вы заблокированы по IP адресу</font> для разблокировки свяжитесь с администратором</div>");} if($result >= $maxpages){die("<div class='warning'>Вы слишком часто листаете страницы, этим вы нагружаете сервер, просматривате страницы не больше чем ".$maxpages." страниц в ".$pertime." секунд(ы) <a href='index.php'>Хорошо, я постараюсь</a></div>");} $time_deleted=$time-$deletetime; $result=mysql_query("delete from page_load_detected where time_load < '$time_deleted'"); $query = "insert into page_load_detected (ip,time_load) values('$ip','$time')"; $result=mysql_query($query); } создайте таблицу page_load_detected CREATE TABLE `page_load_detected` ( `id` int(20) NOT NULL AUTO_INCREMENT, `ip` varchar(50) NOT NULL DEFAULT '', `time_load` int(40) NOT NULL , PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251; и файл .htaccess в корне в index.php добавте time_pages_load("600","3","1","10"); 1 число, фактически врямя ранения логов 2 число страниц 3 временной промежуток в секундах в котором можно просматривать (предыдущее число) страниц 4 если за (третье число) просмотрено N страниц то бан по .htaccess по ip в нашем варианте можно просматривать 3 страницы в 1 секунду, если просмотрено 10 страниц за 1 секунду то бан по IP, время хваранения 10 минут(600 секунд)
спасёт, предложи вариант работы бота
ну вобще это не рега, это просто проверочка перед загрузкой страниц сайта
Данный скрипт отсечёт мне кажется всех ботов function cheked_proxy(){ if($_SERVER['HTTP_X_FORWARDED_FOR']!=""){die("<div class='warning'>Вы используете proxy server, это недопустимо, сожалеем но это наше требование</div>");} if($_SERVER['HTTP_CLIENT_IP']!="" and $_SERVER['REMOTE_ADDR']!=$_SERVER['HTTP_CLIENT_IP']){die("<div class='warning'>Вы используете proxy server, это недопустимо, сожалеем но это наше требование</div>");} } //ЧЕК БОТ КРЭЗИ РЕЖИМ// function checked_bot_crazy(){ if($_SERVER['HTTP_USER_AGENT']==""){die("<div class='warning'>Ваш броузер не определён, сожалеем но это наше требование</div>");} $coockiename1=md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT'].$_SERVER['HTTP_USER_AGENT']."78eryher78h768erher87h77er8herh7her7h"); $coockiename2=md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT'].$_SERVER['REMOTE_ADDR']."re8h7er89h67erh6er8her8h6erhye9gyreyg"); if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename1)) {}else{ if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename2)) {}else{ $hashcoockie = @fopen("logs/site_users/hashcoockie","a+"); $D = "$coockiename1 | $coockiename2\r\n"; fwrite($hashcoockie,$D); fclose($hashcoockie); }} echo " <!-- проверка есть ли у цели разрешение экрана --> <script type='text/javascript'> function setCooc (){document.cookie = '".$coockiename1."=' + screen.availWidth; document.cookie = '".$coockiename2."=' + screen.availHeight; }var Scrnonload = window.onload; window.onload = function () { if(Scrnonload) Scrnonload(); setCooc(); }</script> <!-- проверка есть ли у цели разрешение экрана --> "; $width = $_COOKIE[$coockiename1];$height = $_COOKIE[$coockiename2]; if($width=="" or $height==""){ if($_SERVER['HTTP_REFERRER']=="/" or $_SERVER['HTTP_REFERRER']=="index.php"){ die("<div class='warning'>Ваш броузер не поддерживает JavaScript либо выключены Coockie, сожалеем но это наше требование1</div>");}else{die("<meta http-equiv='Refresh' content='0;URL=index.php'>");} } $coockiename1=md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT'].$_SERVER['HTTP_USER_AGENT']."78eryher78h768erher87h77er8herh7her7h"); $coockiename2=md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT'].$_SERVER['REMOTE_ADDR']."re8h7er89h67erh6er8her8h6erhye9gyreyg"); if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename1)) {}else{die("<div class='warning'>Ваш броузер не поддерживает JavaScript либо выключены Coockie, сожалеем но это наше требование</div>2");} if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename2)) {}else{die("<div class='warning'>Ваш броузер не поддерживает JavaScript либо выключены Coockie, сожалеем но это наше требование</div>3");} } //ЧЕК БОТ НОРМАЛ РЕЖИМ// function cheked_bot_normal(){ if($_SERVER['HTTP_USER_AGENT']==""){die("<div class='warning'>Ваш броузер не определён, сожалеем но это наше требование</div>");} $ip = $_SERVER['HTTP_CLIENT_IP'];if($ip==""){$ip=$_SERVER['REMOTE_ADDR'];} $counter = $ip; setcookie("botchaltestbot",$counter); if($_COOKIE['botchaltestbot']!=$ip){ if($_SERVER['HTTP_REFERRER']=="/" or $_SERVER['HTTP_REFERRER']=="index.php"){ die("<div class='warning'>Ваш броузер не определён либо у вас отключены Coockie, сожалеем но это наше требование</div>");}else{die("<meta http-equiv='Refresh' content='0;URL=index.php'>");} }} //ЧЕК РАЗМЕР ЗАГОЛОВКОВ// function checked_size_http_header(){ $maxheadersize="300"; if(strlen($_SERVER['HTTP_USER_AGENT']) > $maxheadersize or strlen($_SERVER['HTTP_REFERRER']) > $maxheadersize or strlen($_SERVER['HTTP_ACCEPT']) > $maxheadersize or strlen($_SERVER['CONTENT_LENGTH']) > $maxheadersize or strlen($_SERVER['HTTP_COOKIE']) > $maxheadersize){die("<div class='warning'>Ответы вашего броузера серверу слишком длинные, сожалеем но это наше требование</div>");} } //РАЗМЕР ПОСТ И ГЕТ// function cheked_size_post_and_get(){ $maxPOSTsize="200"; $maxGETsize="100"; foreach($_POST as $val)if(strlen($val)>$maxPOSTsize){die("<div class='warning'>Ответы вашего броузера серверу слишком длинные, сожалеем но это наше требование</div>");}; foreach($_GET as $val)if(strlen($val)>$maxGETsize){die("<div class='warning'>Ответы вашего броузера серверу слишком длинные, сожалеем но это наше требование</div>");}; } Писал всё руками, если что-то не робит, отписывайтесь!!! Начнём по порядку: 1 функция function cheked_proxy() делает простую проверку на использование прокси 2 функция function checked_bot_crazy() - на мой взгляд самая крутая! что она делает: 1) Генерирует названия куки основываясь на HTTP заголовках клиента и отправляет их ему, название кукисов сгенерированно а их содержание это разрешение экрана которое берётся из яваскрипта(у ботов ведь нету разрешения, а написать бот который понимает js это целове дело) потом записывает имена куки в файл в дериктории logs/site_users/hashcoockie (hashcoockie это сам файл) далее если куки на клиенте найдены то снова генерирует название основываясь на хеадерах и сравнивает с тем что есть в базе, если всё впорядке то пропускает юзера дальше, если нет то умирает. Этим мы отсеиваем как я и сказал ботов. Даже если хакер подсунет из броузера куки то они не совпадут с генерируемым названием куки, так как у бота и броузера заголовки разные, как вы уже заметили в скрипте берутся такие вещи как $_SERVER['REMOTE_ADDR'] $_SERVER['HTTP_USER_AGENT'] и самое главное что никто никогда в ботах не высталяет это $_SERVER['HTTP_ACCEPT'] (какие файлы броузер понимает) Единственный возможный обход это полностью эдентичные заголовки в боте и броузере, но до этого злоумышленнику надо ещё догадаться!) И ещё 1 минус... про яндекс на сайте можно забыть(он же тоже бот...) Так следующая функция простой чек бота - cheked_bot_normal() посылает куки, редиректит и принимает куки, если всё ок то пропускает дальше Следующая довольно важная функция это checked_size_http_header() чекает заголовки на их размер, если размер превышает $maxheadersize то умирает cheked_size_post_and_get() тоже самое, проверяет велечину всех гет и пост запросов На страницу сайта вставляем так: include "файл с этими функциями"; И если надо активировать какую либо функцию то пишите в вашем файле index.php cheked_size_post_and_get(); название функции(это для тех кто синтаксис не знает :lol: ) P.S. Мне тоже иногда плюсики нужны :D P.P.S. Это кстати маленький отрывок PMW 1.5 думаю представляете будущий авторитет этого проекта скачать http://depositfiles....files/cp0tk3wtb
я подбирал пароль на windows платформе вида 3759382746 2 часа, думаю что ты понял что скрипт надо доработать чтоб по всем количествам символов пробывал, ну либо много потоков и каждый со своим числом
нет! берёш ставишь Unix значит, мультирежим, несколько потоков(1поток ето надо 50Kbit) вводиш все символы, адрес до цели, логин admin и идёшь спать, утром встаёш и опракидываешь сервер цели
примеры просто латинский текст и цифры preg_match("|^[-a-zA-Z0-9]+$|i", $login) латинский и ру и цифры preg_match("|^[-a-zA-Z0-9а-яА-Я]+$|i", $login) мыло preg_match("/^[0-9a-z_\.]+@[0-9a-z_^\.]+\.[a-z]{2,6}$/i", $email) для поля с бб кодами preg_match("|^[-a-zA-Z0-9е\s\.,\"\[\]/%#=:\?!]+$|i", $minitext) для url preg_match("#http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/%$]*\.(html?|php)#i", $minitext)
На хабрахабре откопал [ATTACH]
либо так <script type='text/javascript'> function setCooc (){ document.cookie = "ek_x=" + screen.availWidth; document.cookie = "ek_y=" + screen.availHeight; } var ScrnOnload = window.onload; window.onload = function () { if(ScrnOnload) ScrnOnload(); setCooc(); } </script> <php $width = $_COOKIE['ek_x']; $height = $_COOKIE['ek_x']; function imageresize($outfile,$infile,$percents,$quality) { $im=imagecreatefromjpeg($infile); $w=imagesx($im)*$percents/100; $h=imagesy($im)*$percents/100; $im1=imagecreatetruecolor($w,$h); imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im)); imagejpeg($im1,$outfile,$quality); imagedestroy($im); imagedestroy($im1); } imageresize("","webcam.jpg",$width,$height); ?>
http://depositfiles.com/files/jj1pqwc9m
Какбэ намёк ясен, однозначно неоднозначный скрипт. 32 просмотра, ктонить тестил? Отпишитесь
Теория: Чтобы накрутить счётчик нам нужно проходить по ссылке голосования на топ, на топах обычно стоит проверка по ip,куки, ну кое где стоит и каптча но вопрос про это дело времени!) Собсно что нам надо: 1-это изменять ip 2-менять заголовки(useragent итп) Для того чтобы менять ip нам потребуются прокси, откудо их взять ваше дело, я советаю брать списки элитных прокси так как они не возвращают ip использующего(например при проверке на сервере может стоять не $_SERVER['REMOTE_ADDR'] а $_SERVER['HTTP_CLIENT_IP']) а гавённое прокси сразу вас пропалит. Существует кууча прог для поиска и проверки прокси, на данный момент меня больше интересует кол-во прокси чем их качество поэтому я юзаю ProxyFinder скачать Теперь нам надо подготовить списки заголовков: Юзер агенты: берём например отсюда смотреть Список реферов: самим надо делать ибо только вы знаете ваши страницы, либо заюзать какойнить онлайн сео инструмент и получить список Теперь скрипт: <? $dataPROXY = file("proxy.txt"); $totalPROXY = count($dataPROXY); $sPROXY = mt_rand(0, $totalPROXY-1); $result_PROXY = $dataPROXY[$sPROXY]; $PROXY = str_replace("\r\n", "", $PROXY); $dataUA = file("ua.txt"); $totalUA = count($dataUA); $sUA = mt_rand(0, $totalUA-1); $result_UA = $dataUA[$sUA]; $UA = str_replace("\r\n", "", $resultUA); $dataREFERRER = file("referrer.txt"); $totalREFERRER = count($dataREFERRER); $sREFERRER = mt_rand(0, $totalREFERRER-1); $result_REFERRER = $dataREFERRER[$sREFERRER]; $REFERRER = str_replace("\r\n", "", $resultREFERRER); $ref = $REFERRER; $ua = $UA; $proxy_host=$PROXY; // цель $url="http://pw.mmotop.ru/vote/17008/";// цель // цель $ch=curl_init ($url); curl_setopt($ch, CURLOPT_PROXY, $proxy_host); curl_setopt($ch, CURLOPT_REFERER, $ref); // некоторые проверяют curl_setopt ($ch, CURLOPT_HEADER, 1); // чтобы выводил заголовки curl_setopt ($ch, CURLOPT_NOBODY, 1); // чтобы не выводил саму страницу (она пока не нужна) curl_setopt($ch, CURLOPT_USERAGENT, $ua); // чтобы сказать что мы броузер, а не так себе... ob_start(); // первый раз ничего не нужно выводить (можно для отладки скрипта убрать) $htnl = curl_exec ($ch); curl_close ($ch); $headers = explode("\n", ob_get_contents()); // так можно получить массив всех заголовков от сервера ob_end_clean(); for ($i=0; $i<sizeof($headers); $i++) { if (strpos($headers[$i], 'Set-Cookie:') !== FALSE) { list($field, $cookie[]) = explode(' ', $headers[$i]); // так можно получить куку (куки) } } $ch=curl_init ($url); curl_setopt($ch, CURLOPT_PROXY, $proxy_host); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt ($ch, CURLOPT_HEADER, 0); // для отладки можно оставить 1 curl_setopt ($ch, CURLOPT_NOBODY, 1); // чтобы не выводил саму страницу (она пока не нужна) curl_setopt($ch, CURLOPT_USERAGENT, $ua); curl_setopt($ch, CURLOPT_REFERER, $ref); // некоторые проверяют curl_setopt($ch, CURLOPT_POST, 1); // метод POST curl_setopt($ch, CURLOPT_POSTFIELDS, "".$login."=".$loginvalue."".$kill."&".$post1name."=".$post1value."&".$post2name."=".$post2value."&".$post3name."=".$post3value."&".$post4name."=".$post4value."&".$post5name."=".$post5value."&".$post6name."=".$post6value.""); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // это может понадобиться если будет редирект for ($i=0; $i<sizeof($cookie); $i++) { curl_setopt($ch, CURLOPT_COOKIE, $cookie[$i]); // шлём cookie } $html = curl_exec($ch); curl_close($ch); echo $html; ?> НЕ ЗАБУДТЕ в томже каталоге разместить txt юзерагентов прокси и реферов Вот пример зачтения голоса [img] P.S. Не используйте во вред данный скрипт, если вы начнёте голосовать за конкурента через дермопрокси то скорее всего его забанят из топа и он лишится притока новых игроков а это фактически смерть сервера
php в помощь, каково разрешение экрана у юзера такова и картинка а проще сделать так <style> body{background:#000000;} .bg{background:url(ВАША КАРТИНКА) center no-repeat; width:100%;} </style> <body> <CENTER> <div class="bg"> some content... </div> в итоге и фон есть и на случай мега экрана у юзера картинка фона будет посередине но на чёрном фоне, смотрится когда края картинки плавно переходят в #000000
Или юзать самую надёжную регу которая будет - PMW 1.5 (можно поставить 3 разных каптчи, проверка юзерагента и других заголовков, проверка куки, ограничение загрузок страниц в секунду, и ограничение по ip для реги) Всё это позволит вам избежать таких атак
Да не с каких, просто написал
Имена участников (разделяйте запятой).