función para validar urls

Iniciado por Hans el Topo, 9 Diciembre 2008, 13:37 PM

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

Hans el Topo

he estado probando una función para validar urls y me gustaría preguntar si alguien es capaz de encontrar algún tipo de vulnerabilidad

las urls se guardan tal cuál en la base de datos y a la hora de mostrarlas se meten en un enlace <a href="url">cualquier nombre</a>
he probado diferentes ataques y parece ser que funciona, aligual se me ha escapado algo y a alguien se le ocurre algún tipo de vulnerabilidad



//se le envía una cadena y devuelve true si es url válida o false en caso contrario
function url_valida($url){
static $urlregex = "^(https?|ftp)\:\/\/([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?\$";

return eregi($urlregex, $url);

}


Código con colorines y paso a paso
 

WHK

podrías usar curl y lanzar una petición GET con un timeout pequeño donde si el header contiene "200 OK" entonces es válido.