¿PHP FILTER_VALIDATE_IP es lo suficientemente seguro como para que $ _GET una dirección IP?

0

Necesito pasar una IP a una página de PHP, y sería conveniente poder usar GET, pero sé que eso es una especie de problema, por lo que quiero revisar tres veces que lo estoy manejando de manera segura .

if(!filter_var($_GET["ip"], FILTER_VALIDATE_IP)) {
    echo "Invalid IP.";
    die();
}

$ip = (string)$_GET["ip"];

¿Es esto lo suficientemente seguro como para poder poner $ ip en una base de datos o mostrarlo en una página? ¿O hay alguna vulnerabilidad con FILTER_VALIDATE_IP (o quizás la forma en que está estructurado el código) de lo que debería preocuparme?

    
pregunta Qaz 19.08.2014 - 16:58
fuente

1 respuesta

2

Ha habido problemas con filter_var cuando se usó con FILTER_VALIDATE_EMAIL en el pasado, sin embargo no puedo encuentra cualquier vulnerabilidad con FILTER_VALIDATE_IP .

Aunque una dirección IP no contiene caracteres que tienen un significado especial dentro de HTML (por ejemplo, < ) o tienen caracteres que pueden salir de una consulta de base de datos (por ejemplo, ' ), trataría el valor como cualquier otro el valor de la cadena y el uso de consultas parametrizadas para almacenar esto dentro de una base de datos o codificación HTML cuando se muestra en la página.

Esto evitaría cualquier cambio futuro, como si luego se cambiara a un nombre de host desde la entrada del usuario, el valor aún sería seguro para ambas operaciones.

    
respondido por el SilverlightFox 19.08.2014 - 19:19
fuente

Lea otras preguntas en las etiquetas