Cita:
Iniciado por Flow89 Bueno, ahora te planteo una duda y un problema.
Problema
Con IE7, ahora no me coge las cookies en administracion.php que esta en el mismo directorio que se crean las cookies, pero si me las coge en otro directorio como es el de usuarios.
Es por lo de la barra "/" esa que añadimos a las cookies con mozilla si funciona pero con ie no :S
Ahora la duda;
Para insertar seguridad a un sistema de Id's (para lo de las noticias vamos)
con utilizar
$var = (int)$_GET['id'];
es suficiente? o tambien utilizo lo de
if(!is_numeric($_GET['id'])){
die("La variable ID contiene caracteres no permitidos");
//aqui podriamos logear este comportamiento en un archivo log, guardar ip, enviarnos un email, lo que hiciese falta
}
He decidido utilizar mejor el if, y he encontrado este codigo por internet
Código PHP:
function getRealIP()
{
if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
// los proxys van añadiendo al final de esta cabecera
// las direcciones ip que van "ocultando". Para localizar la ip real
// del usuario se comienza a mirar por el principio hasta encontrar
// una dirección ip que no sea del rango privado. En caso de no
// encontrarse ninguna se toma como valor el REMOTE_ADDR
$entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
reset($entries);
while (list(, $entry) = each($entries))
{
$entry = trim($entry);
if ( preg_match("/^([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/", $entry, $ip_list) )
{
// http://www.faqs.org/rfcs/rfc1918.html
$private_ip = array(
'/^0\\./',
'/^127\\.0\\.0\\.1/',
'/^192\\.168\\..*/',
'/^172\\.((1[6-9])|(2[0-9])|(3[0-1]))\\..*/',
'/^10\\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
if ($client_ip != $found_ip)
{
$client_ip = $found_ip;
break;
}
}
}
}
else
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
}
return $client_ip;
}
Lo que hace es recoger la ip, aunque navegue por proxy.
El asunto sería.. el codigo final como quedaría?
if(!is_int($_GET['id'])){
die("La variable ID contiene caracteres no permitidos");
include("cazaIP.php");
$victima = getRealIp();
$sql = "INSERT INTO ips (ip,incidente) VALUES('$victima','intento de Inyeccion SQL')";
mysql_query($sql);
}
Algo así funcionaría??
Ah, y sí, me refiero a eso, en Internet Explorer ahora no me coge las cookies en el mismo directorio pero si en otros.