Предлагаю вам скрипт отслеживания атак хакеров. Смотрим... 1. Создаем файл .php Прописываем там: PHP: <?phpforeach ( $HTTP_COOKIE_VARS as $key => $value ) {$$key=$value;} $user_ip_dat = "user_ip.dat"; $user_id_dat = "user_id.dat"; if ( empty ($user_ip)){if ( getenv ('HTTP_X_forWARDED_for')){$user_ip= getenv ('HTTP_X_forWARDED_for'); } else {$user_ip= getenv ('REMOTE_ADDR'); }} else {$user_ip= getenv ('REMOTE_ADDR'); } $user_agent = $HTTP_SERVER_VARS["HTTP_USER_AGENT"]; $user_host = gethostbyaddr ("$user_ip"); $user_date = date ('d\.m\.Y, H:i'); $date = date ('d\.m\.Y');$general = file ("user_ip.dat"); $count_ip = count ($general); for ( $i = $count_ip; $i >= 0; $i--){ if ($break == "yes"){ break; } list ($user_id_abs,$user_ip_abs,$user_host_abs,$user_agent_abs,$hit,$user_date_abs) = explode ("<>", $general[$i]); $user_date_abs = substr ( $user_date_abs, 0, 10); if ($user_ip == $user_ip_abs and $user_date_abs == $date){ if ( empty ($user_id) or $user_id == ""){$user_id = substr ( $user_ip, 0, 3); $user_id .= time (); setcookie ("user_id", $user_id, time () 33333333, "/", "$SERVER_NAME", 0); $i_abs = $i;$hit_abs = $hit 1;$agent = "old";break;} else { $gener = file ("user_id.dat");$count_id = count ($gener); for ( $ii = 0; $ii <= $count_id; $ii ){ list ($user_id_abs,$c_name_abs,$c_city_abs,$c_homepage_abs,$c_mail_abs) = explode ("<>", $gener[$ii]); if ($user_id_abs == $user_id){ $i_abs = $i; $hit_abs = $hit 1; $agent = "old"; $break = "yes"; break;} if ($ii == $count_id){$i_abs = $i;$hit_abs = $hit 1;$agent = "old";$break = "yes";break;}}}} if ($user_ip == $user_ip_abs and $user_date_abs != $date){ if ( empty ($user_id) or $user_id == ""){$user_id = substr ( $user_ip, 0, 3); $user_id .= time (); setcookie ("user_id", $user_id, time () 33333333, "/", "$SERVER_NAME", 0);} $hit_abs = 1; $agent = "new"; break;} if ($i == 0){ if ( empty ($user_id) or $user_id == ""){ $user_id = substr ( $user_ip, 0, 3); $user_id .= time (); setcookie ("user_id", $user_id, time () 33333333, "/", "$SERVER_NAME", 0);} $hit_abs = 1; $agent="new";}} if ( $agent == "new" ){$user_date= date ('d\.m\.Y, H:i'); $user_file = fopen ("user_ip.dat","a "); fputs ($user_file,"$user_id<>$user_ip<>$user_host<>$user_agent<>$hit_abs<>$user_date\n"); fclose ($user_file);} if ( $agent == "old" ){ $generaladd = file ($user_ip_dat); $fp = fopen ("user_ip.dat","w"); $lines = count ($generaladd); for ( $i = 0 ; $i <= $lines ; $i ){ if ($i != $i_abs) { fputs ($fp,$generaladd[$i]); } else { fputs ($fp,"$user_id<>$user_ip<>$user_host<>$user_agent<>$hit_abs<>$user_date\n"); }} fclose ($fp);} ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>Статистики</title></head> <body> <?phpecho"<table align=center width=100% ><tr> <td align=center><font color=ff0000>Ваш IP</font></td> <td align=center><font color=ff0000>Ваш HOST</font></td> <td align=center><font color=ff0000>Последнее посещение</font></td> <td align=center><font color=ff0000>Браузер</font></td> <td align=center><font color=ff0000>Хитов</font></td> </tr><tr> <td align=center>$user_ip</td> <td align=center>$user_host</td> <td align=center>$user_date</td>"; if ( eregi ("MSIE", $user_agent)) { if ( eregi ("Opera", $user_agent)) { echo"<td align=center>Opera</td>"; } else { echo"<td align=center>Explore</td>"; }} else { echo"<td align=center>Netscape</td>"; } echo" <td align=center>$hit_abs</td> </tr> </table>"; ?></body></html> 2. Создаем 2 файла: Код: user_ip.dat Код: user_id.dat В своем роде это базы данных, где будет храниться вся информация. Код: Файлы 'user_ip.dat' и 'user_id.dat' должны быть пустыми! Код: Файлы 'user_ip.dat' , 'user_id.dat' , 'имя_файла.php' должны быть в одной дериктории! P.S. Ваш хост должен поддерживать PHP от +сега неоткажусь) Пользовался литературой.
Любой спам поступающий на сайт будет проходить через этот скрипт. Я например засунул его себе в index.php, а для удобности заинклюдил в index.php PHP: <?php//include ("haker.php");// ?> а файл haker.html положил в закрытый каталог чтоб его немогли просматривать.
1) Зачем ты спамеров хакерами называешь?)) Кстати, на форуме аж 2 скрипта антиспама лежат 2) Нету табуляции 3) Parse error: syntax error, unexpected T_LNUMBER in Z:\home\localhost\www\test\index.php on line 27 4) Parse error: syntax error, unexpected T_LNUMBER in Z:\home\localhost\www\test\index.php on line 29 5) Parse error: syntax error, unexpected T_LNUMBER in Z:\home\localhost\www\test\index.php on line 40 6) Parse error: syntax error, unexpected T_LNUMBER in Z:\home\localhost\www\test\index.php on line 47 7) Parse error: syntax error, unexpected T_LNUMBER in Z:\home\localhost\www\test\index.php on line 59 Parse error: syntax error, unexpected T_LNUMBER in Z:\home\localhost\www\test\index.php on line 67 9) Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\test\index.php on line 3 10) user_ip.dat вырос до 915 мегабайт... а затем кончилось отведённое время и Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\test\index.php on line 85 11) 3 строчка, там где цикл, можно одним обращением к серверу загрузить ВСЮ память, и делать это постоянно, нельзя создавать переменные с названиями из кук, без какой либо фильтрации, а то вместо сайта будет Fatal error: затрачено макс памяти и сайт работать не будет. (вариант с послать 1024 кук по 50 килобайт каждая) 12) 73 строчка, ты без фильтрации пишешь в файл юзерагент, а если подставить в юзерагент браузера твой сепаратор <> и дописать "админ хуйло" - согласись будет не приятно! надо фильтровать... Ну я думаю вывод напрашивается сам собой... не защита а дыра. Дай адрес сайта - покажу.