"Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+Scripts

Iniciado por Graphixx, 30 Diciembre 2010, 21:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Graphixx

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:
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

~ Yoya ~

Tienes algunas vulnerabilidades y Bug
Código (php) [Seleccionar]

$a = $separar[0];
$b = $separar[1];
$c = $separar[2];
$d = $separar[3];


Mejor usa la función list().
Que seria:
Código (php) [Seleccionar]
list($a, $b, $c, $d) = $separar;



Código (php,2) [Seleccionar]
$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


Código (php) [Seleccionar]

echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />';


Se puede causar XSS mediante el referer...


Código (php) [Seleccionar]
<?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
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Graphixx

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.
Código (html) [Seleccionar]

   ## 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  
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

Graphixx

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
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

merolhack

Pues esto ya existe usando el API de Google Maps, algo como esto:
http://www.seomoz.org/ip2loc

Pero usando bien la API se pueden obtener muchas más datos!

Aqui hay otra clase:
http://www.el33.es/2008/07/01/clase-para-geolocalizar-la-ip-en-php-google-maps-api/
PHP Web Developer
Joomla, jQuery, MySQL, CSS, etc...

Android APP Developer http://android-dev.tumblr.com/

Graphixx

Cita de: merolhack en 25 Abril 2011, 15:41 PM
Pues esto ya existe usando el API de Google Maps, algo como esto:
http://www.seomoz.org/ip2loc

Pero usando bien la API se pueden obtener muchas más datos!

Aqui hay otra clase:
http://www.el33.es/2008/07/01/clase-para-geolocalizar-la-ip-en-php-google-maps-api/

Pero ese de esa web http://www.seomoz.org/ip2loc, no veo que diga por ningun lado donde descargar el codigo que estan utilizando, ni que nos expliquen como funciona, ni que digan de donde obtuvieron las bases de datos de las ip. el que yo estoy proponiendo es un proyecto libre, de codigo abierto y de comunidad.

Y lo de las google maps api, es lo mismo es una API, no un codigo abierto.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

merolhack

jaja solo es un ejemplo de todos los scripts y clases que puedes encontrar en internet, solo es cosa de que busques bien.

Como esta que tiene licencia GPL:
http://code.google.com/p/php-google-map-api/

Es cosa de aprender a usar la API de Google Maps:
http://code.google.com/intl/es-ES/apis/maps/index.html

No todo el software es libre, ni todo tiene la misma licencia, hay gratuitos y/o libres.
PHP Web Developer
Joomla, jQuery, MySQL, CSS, etc...

Android APP Developer http://android-dev.tumblr.com/

Graphixx

yo estoy buscando hacer algo asi como el globo de revolver maps. convinado con el de 99counters...
http://es.99counters.com/ - http://revolvermaps.com/  ;D , si sabes de alguna libreria que me permita editar una imagen en php con coordenadas, para ser mas precisos ponerle los puntos rojos que ponen los de revolvermaps sobre el mapa. me caeria de pelos. haber si por fin, en internet, liberamos el code de un contador de visitas decente.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

Graphixx

Añadido al proyecto la libreria para dibujar en un mapa global las visitas:
http://www.web-max.ca/PHP/article_1.php



proyecto logrado gracias a:
http://en.wikipedia.org/wiki/Mercator_projection

Para tornar el mapa 3d usar:
http://www.uff.br/mapprojections/Mercator_en.html
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

Shell Root

Dice que estoy en la ciudad de bello, cuando no lo es. XD, además no es una ciudad sino un municipio. jojojojo
http://es.wikipedia.org/wiki/Bello_(Antioquia)
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.