Tema destacado:
Autor
|
Tema: "Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+Scripts (Leído 5,415 veces)
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
El proyecto va asi:http://www.sistemasycontroles.net/ip/Puedes descargar todos los archivos del proyecto aca:graphixx_contador_de_visitas_php.zip (9.56 MB) EL paquete incluye:  La base de datos con los rangos ip de todo el mundo la saque de:http://ipinfodb.com/ip_database.php  Descargar la base de datos de ip mundiales de:http://www.megaupload.com/?d=NJZHXD5SAqui tambien estan compiladas como usar todas las bd gratis que hay en un solo recurso:http://bakery.cakephp.org/spa/articles/dereklio/2010/10/11/geoip_de_origen_de_datos_collection_-_maxmind_wipmania_ipinfodb_-_muchos_proveedores_geoip_para_usted_para_elegirlas banderas animadas estan en:Espectaculares Banderas de todos los paises en GIF.Por implementar:La idea es implementar una tabla de estadisticas como esta:http://live.feedjit.com/live/coltandecolombia.com/0/Para implementarle tambien un globo 3d tipo revolver maps, gracias a que la base de datos entrega las coordenadas cartesianas, asi:http://www.revolvermaps.com/?target=enlarge&i=yaZ8Wt55df&wid=1&nostars=true&color=ff0000&m=2&ref=http%3A%2F%2Fwww.sistemasycontroles.net%2FEl codigo hasta el momento va:<?php include "conexiondb.php"; $ip = $_SERVER['REMOTE_ADDR']; $separar = explode('.',$ip); print("IP: $ip<br>"); echo "1er rango: ".$separar[0]."<br>"; echo "2do rango: ".$separar[1]."<br>"; echo "3do rango: ".$separar[2]."<br>"; echo "4to rango: ".$separar[3]."<br>"; list($a, $b, $c, $d) = $separar; $ip2 = (($a*256+$b)*256+$c)*256 + $d; echo "ip cifrada:".$ip2."<br>"; $connect=Conectarse(); $ssql = "SELECT * FROM `ip_group_city` where `ip_start` <= '$ip2' order by ip_start desc limit 1"; $consulta = mysql_query($ssql,$connect); mysql_close($connect); if( mysql_num_rows($consulta) == 1) { $array = mysql_fetch_array($consulta); $_country_code = $array["country_code"]; $_country_name = $array["country_name"]; $_region_code = $array["region_code"]; $_region_name = $array["region_name"]; $_city = $array["city"]; $_latitude = $array["latitude"]; $_longitude = $array["longitude"]; echo "Codigo del Pais:".$_country_code."<br>"; echo "Nombre del Pais:".$_country_name."<br>"; echo "Codigo de region:".$_region_code."<br>"; echo "Nombre de la Region:".$_region_name."<br>"; echo "ciudad:".$_city."<br>"; echo "latitud:".$_latitude."<br>"; echo "longitud:".$_longitude."<br>"; $lstring = strtolower($_country_code); echo "<img src=banderas_iso3166/".$lstring.".GIF border=0><br>"; mysql_free_result($consulta); //header( "Location: bienvenido.php" ); } else { mysql_free_result($consulta); //header( "Location: portada.php" ); } $nav=$_SERVER['HTTP_USER_AGENT']; // guardo en la variable el Navegador echo "navegador: "."$nav"."<br>"; // muestro la variable con el Navegador ?> <?php //preg_match(). if ((preg_match('/'."Nav".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Gold".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."X11".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Mozilla".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Netscape".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."MSIE".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."Chrome".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."Konqueror".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."Firefox".'/', $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape"; elseif(preg_match('/'."Firefox".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox"; elseif(preg_match('/'."MSIE".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE"; elseif(preg_match('/'."Chrome".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Chrome"; elseif(preg_match('/'."Lynx".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx"; elseif(preg_match('/'."Opera".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera"; elseif(preg_match('/'."WebTV".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV"; elseif(preg_match('/'."Konqueror".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror"; elseif((preg_match('/'."bot".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Google".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Slurp".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Scooter".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Spider".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Infoseek".'/', $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot"; else $browser = "Other"; echo "EL navegador es: ".$browser; ?> <center> <?php $url=$_SERVER['HTTP_REFERER']; echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />'; preg_match( '@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches ); $host = $matches[1]; echo '<strong>'."viene de(dominio): ".'</strong>'.$host; ?> </center> <center> <?php function get_search($referer) { preg_match("/q=(.*?)&/", $referer, $a); $b = urldecode(str_replace("+"," ", $a[1])); return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio.</strong>'; } ?> </center> <?PHP // example of basic use // set directory path to where the ip2countryphp.sql.php file is // this MUST be a relative path and MUST include the end slash / define("BASEDIR","./"); // set width of flag, height is proportional to width. $flag_width = "30"; // include the class file include(BASEDIR."ip2countryphp.sql.php"); /* Below is a heredoc example of how you might display the users info, of course you can include only the variables you want to, or you might want to store the ip address, 2 letter country code(for flag image) and country name in a database for using on a specific page. */ $gifflag = "banderas/".$country_name.".GIF"; print <<<TEST <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Visit Site Counter</title> </head> <body style="font:normal 9pt tahoma,arial,verdana"> <table style="margin-top:20px;border:#CCCCCC 1px solid" width="320" cellspacing="2" cellpadding="3" border="0" align="center"> <tr><td bgcolor="#CCCCCC" colspan="2"> <font color="white">Visit Site Counter</font></td></tr> <tr><td width="200" height="26">Direccion IP:</td><td>$ip_address</td></tr> <tr><td>Nombre del Pais:</td><td>$country_name</td></tr> <tr><td>Codigo de 2 letras:</td><td>$two_letter_code</td></tr> <tr><td>Codigo de 3 letras:</td><td>$three_letter_code</td></tr> <tr><td>Bandera del Pais:</td><td><img src="$flag_img" width="$flag_width" border="0"></td></tr> <tr><td>Bandera del Pais:</td><td><img src="$gifflag" border="0"></td></tr> <tr><td bgcolor="#CCCCCC" colspan="2"><font color="white" size="1">www.eventosysistemas.com</font></td></tr> </table> </body> </html> TEST; exit; ?> Añadido al proyecto la libreria para dibujar en un mapa global las visitas:GIS mapping in PHP: Part 1Plotting a longitude / latitude coordinate on a raster map of the world using PHP and GD. http://www.web-max.ca/PHP/article_1.phpGIS mapping in PHP: Part 2Loading vector data in from a Mapinfo MIF file and displaying it in an image using PHP and GD. http://www.web-max.ca/PHP/article_2.phpGIS mapping in PHP: Part 3Retrieving user selected longitude and latitude coordinates from a raster map of the world. http://www.web-max.ca/PHP/article_3.phpGIS mapping in PHP: Part 4 Stepping back in time, we show how to plot more than one point on a raster map of the world, loading data from a simple text file. http://www.web-max.ca/PHP/article_4.php proyecto logrado gracias a:http://en.wikipedia.org/wiki/Mercator_projectionPara tornar el mapa 3d usar:http://www.uff.br/mapprojections/Mercator_en.html Pido ayuda con esto:COdigo del referer: <?php $url=$_SERVER['HTTP_REFERER']; echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />';
preg_match( '@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches ); $host = $matches[1];
echo '<strong>'."viene de(dominio): ".'</strong>'.$host; ?> Alguien sabe como optener hacia que pagina parte el usuario?, el contrario de HTTP_REFERER....?
|
|
|
|
« Última modificación: 5 Marzo 2012, 22:47 por Graphixx »
|
En línea
|
|
|
|
drvy | BSM
Desconectado
Mensajes: 1.129
badstupidmonkey
|
Lo primero no lo veo posible a no ser que el propio link hacia el que va a partir el usuario no este indicado en tu propia pagina. Lo segundo, segun he entendido queres saber lo que buscaba el usuario mediante el referer o algo asi no ? seria parecido a esto: <?php function get_search($referer) { preg_match("/q=(.*?)&/", $referer, $a); $b = str_replace("+"," ", $a[1]); return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?> Saludos
|
|
|
|
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
Gracias drvy | BSM justo lo que andaba buscando e Incluire para optener la ip una funcion que posteo el compañero cuántico: <?php function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_VIA'])) { $ips = $_SERVER['HTTP_VIA']; } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ips = $_SERVER['REMOTE_ADDR']; } else { $ips = "unknown"; } echo "Tu IP es: $ips"; } if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip1 = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_VIA'])) { $ip1 = $_SERVER['HTTP_VIA']; } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ip1 = $_SERVER['REMOTE_ADDR']; } else { $ip1 = "unknown"; } ?> Se llama asi: <?php getIP(); ?>
|
|
|
|
|
En línea
|
|
|
|
drvy | BSM
Desconectado
Mensajes: 1.129
badstupidmonkey
|
Hola =) No te recomiendo usar HTTP_X_FORWARDED_FOR. Pues serviría para obtener el proxy (al igual que HTTP_VIA) ( en caso de que el cliente use tal) pero es fácilmente modificable mediante los headers del navegador.
En todo caso usar únicamente REMOTE_ADDR te bastaría a no ser que quieras comprobar si el cliente usa proxy y en tal caso indicarlo.
Saludos
|
|
|
|
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
Lo primero no lo veo posible a no ser que el propio link hacia el que va a partir el usuario no este indicado en tu propia pagina. Lo segundo, segun he entendido queres saber lo que buscaba el usuario mediante el referer o algo asi no ? seria parecido a esto: <?php function get_search($referer) { preg_match("/q=(.*?)&/", $referer, $a); $b = str_replace("+"," ", $a[1]); return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?> Saludos COmpa mira lo que me devuelve el code que posteaste: Bienvenido, la busqueda de: http%3A%2F%2Fsistemasycontroles.net%2Fip te ha traido hasta este sitio. Gracias por visitarme =). los : salen como "%3" y el / sencillo como "%2F" Para lo de las palabras claves de busqueda en google con las que llegaron a la web, creo y va ser mejor usar: http://www.phpclasses.org/package/4383-PHP-Extract-keywords-used-to-search-in-the-site-Google.html<?php function GoogleQuery () { //Comprobamos que la pagina referente pertenece a Google if (strpos ($_SERVER["HTTP_REFERER"], “google”)) { //Almacenamos en la variable $string el contenido de la variable $_SERVER["HTTP_REFERER"] $string = $_SERVER["HTTP_REFERER"]; //Inicialimamos a 0 el valor de la variable que nos indicara la longitud de la cadena contenida en la variable q. $longQuery = 0; // — Encontramos la variable q y su final delimitado por & for ($i=0; $i < strlen ($string); $i++){ if ($string[$i] == ‘q’) { for ($n=$i; $n < strlen ($string) ;$n++) { if ($string[$n] == ‘&’) { // — Extraemos la subcadena a partir de las posiciones de (inicio)$i+2 [excluimos 'q='] y (fin)$n-2 [adelantamos 2 posiciones el final de la cadena resultante] $q = substr ($string, $i+2, $longQuery-2); break; } $longQuery ++; } break; } } //reemplazamos los símbolos + por espacios en blanco $q = str_replace(‘+’,’ ‘,$q); } return $q; } //Mostramos el resultado haciendo una llamada a la función echo GoogleQuery (); ?> ya probe esta funcion y retorna lo mismo 
|
|
|
|
« Última modificación: 4 Enero 2011, 23:37 por Graphixx »
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
Intente cuadrarlo asi: <?php function get_search($referer) { preg_match("/q=(.*?)&/", $referer, $a); $b = str_replace("+"," ", $a[1]); $b = str_replace("%3A",":", $a[1]); $b = str_replace("%2F","/", $a[1]); return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?> pero me mostro: Bienvenido, la busqueda de: http%3A//www.sistemasycontroles.net/ip te ha traido hasta este sitio. Gracias por visitarme =). No tomo el $b = str_replace("%3A",":", $a[1]); , Alguien sabe por que ?
|
|
|
|
|
En línea
|
|
|
|
drvy | BSM
Desconectado
Mensajes: 1.129
badstupidmonkey
|
Hola, no tiene sentido usar un code tan largo para hacer lo mismo xD Simplemente usa urldecode. Algo asi: <?php function get_search($referer) { preg_match("/q=(.*?)&/", $referer, $a); $b = urldecode(str_replace("+"," ", $a[1])); return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?> con lo que la busqueda de: http://www.google.com/search?hl=en&source=hp&biw=1280&bih=923&q=http%3A%2F%2Fsistemasycontroles.net%2Fip&btnG=Google+Search&aq=f&aqi=m1&aql=&oq=&gs_rfai= te daria: Bienvenido, la busqueda de: http://sistemasycontroles.net/ te ha traido hasta este sitio. Gracias por visitarme =). Saludos
|
|
|
|
« Última modificación: 5 Enero 2011, 16:18 por drvy | BSM »
|
En línea
|
|
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
Para identificar los navegadores: <?php if ((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Mozilla", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Chrome", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Firefox", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape"; elseif(ereg("Firefox", $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox"; elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE"; elseif(ereg("Chrome", $_SERVER["HTTP_USER_AGENT"])) $browser = "Chrome"; elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx"; elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera"; elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV"; elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror"; elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot"; else $browser = "Other"; echo "EL navegador es: ".$browser; ?>
|
|
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Te recomiendo que no uses la función ereg() ya que esta obsoleta desde la versión 5.3.0 de PHP, si migras o actualiza a una version actual, ya sea por seguridad o otro motivo y usas ereg, te dara errores. Ocupa preg_match(). Saludos.
|
|
|
|
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
Actualizado, con paquete con todos los archivos del proyecto: Puedes descargar todos los archivos del proyecto aca:graphixx_contador_de_visitas_php.zip (10 MB) http://www.megaupload.com/?d=MIADL9EF EL paquete incluye: 
|
|
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Tienes algunas vulnerabilidades y Bug $a = $separar[0]; $b = $separar[1]; $c = $separar[2]; $d = $separar[3]; Mejor usa la función list(). Que seria: list($a, $b, $c, $d) = $separar;
$nav=$_SERVER['HTTP_USER_AGENT']; // guardo en la variable el Navegador echo "navegador: "."$nav"."<br>"; // muestro la variable con el Navegador Se puede causar XSS mediante el user agent, aunque no es serio pero es XSS
echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />'; Se puede causar XSS mediante el referer...
<?php if ((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Mozilla", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Chrome", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Firefox", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape"; elseif(ereg("Firefox", $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox"; elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE"; elseif(ereg("Chrome", $_SERVER["HTTP_USER_AGENT"])) $browser = "Chrome"; elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx"; elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera"; elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV"; elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror"; elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot"; else $browser = "Other"; echo "EL navegador es: ".$browser; ?> Salida: Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 2 Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 2 Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 2 Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 2 Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 2 Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 3 Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 4 Deprecated: Function ereg() is deprecated in /var/www/html/pruebas.php on line 5 EL navegador es: Chrome Bug, te dije que no uses ereg...
El nombre del servidor, password y nombre de la base de datos MYSQL, guárdalo en variables, array, etc... Asi no se tiene que insertar en diferentes archivos, ahorra tiempo.
De momento no llegue a instalarlo xD
|
|
|
|
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
Muchas gracias ~ Yoya ~ por tus sugerencias ya las implemente todas en el codigo. Solo me queda una duda,me pregunto si agregando esto a mi archivo .htaccess, me protegeria del XSS que mencionaste con el HTTP_USER_AGENT. ## Seguridad extra para PHP php_flag safe_mode on php_flag expose_php off php_flag display_errors off ## Manejo de errores de Apache. Cuando se produzca uno de estos errores, redirigimos a una pagina especial desarrollada por nosotros. ErrorDocument 401 /error401.html ErrorDocument 403 /error403.html ErrorDocument 404 /error404.html RewriteEngine On Options +FollowSymLinks # Evitar escaneos y cualquier intento de manipulación malintencionada # de la URL. Con esta regla es imposible lanzar ataques de inyección (SQL, XSS, etc) RewriteCond %{HTTP_USER_AGENT} ^$ [OR] RewriteCond %{HTTP_USER_AGENT} ^(-|\.|') [OR] RewriteCond %{HTTP_USER_AGENT} ^(.*)(<|>|%3C|%3E)(.*) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget)(.*) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(.*)(libwww-perl|libwwwperl|snoopy|curl|wget|winhttp|python|nikto|scan|clshttp|archiver|loader|email|harvest|fetch|extract|grab|miner|suck|reaper|leach)(.*) [NC,OR] RewriteCond %{REQUEST_URI} ^(/,|/;|/<|/>|/'|/`|/%2C|/%3C|/%3E|/%27|/////) [NC,OR] RewriteCond %{HTTP_REFERER} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23|%27|%60)(.*) [NC,OR] RewriteCond %{QUERY_STRING} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|%3C|%3E|%27|%26%23|%60)(.*) [NC,OR] RewriteCond %{QUERY_STRING} ^(.*)('|-|<|>|,|/|\\|\.a|\.c|\.t|\.d|\.p|\.i|\.e|\.j)(.*) [NC,OR] RewriteCond %{HTTP_COOKIE} ^(.*)(<|>|'|%3C|%3E|%27)(.*) [NC] RewriteRule ^(.*)$ error.php [NC] ## No permitir acceso al .htaccess order allow,deny deny from all ## Evitar que se liste el contenido de los directorios Options All -Indexes ## Lo mismo que lo anterior IndexIgnore * ## Denegar el acceso a robots dañinos, browsers offline, etc RewriteBase / RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR] RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR] RewriteCond %{HTTP_USER_AGENT} ^attach [OR] RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR] RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus ##redireccionar a los robots a otra web RewriteRule ^.*$ http://www.otraweb.com [R,L] # Protegerse contra los ataques DOS limitando el tamaño de subida de archivos LimitRequestBody 10240000 #Evitar lectura con cURL php_flag allow_url_fopen off Con este codigo sale el error siempre: Forbidden
You don't have permission to access /ip/ on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. Me toco comentar las siguientes lineas, lo que no se si deje inutilizado el codigo de proteccion: RewriteRule ^(.*)$ error.php [NC] ## No permitir acceso al .htaccess ##order allow,deny ##deny from all
|
|
|
|
« Última modificación: 23 Abril 2011, 21:51 por Graphixx »
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
le he agregado los iconos de los navegadores y sistemas operativos:   Aparte estoy trabajando en como insertar a cada registro de la visita un icono de donde venia, usando para ello la funcion api de google para favicons: http://www.google.com/s2/favicons?domain=foro.elhacker.net
|
|
|
|
« Última modificación: 23 Abril 2011, 23:53 por Graphixx »
|
En línea
|
|
|
|
|
|
|
|