Seguridad con Scripts CGI
Piensa en esto-- un script CGI es un programa que cualquiera en
el mundo puede ejecutar en tu máquina. De acuerdo con esto,
busca agujeros de seguridad cuando escribas tu script.
Sobre todo, no confíes en la entrada del usuario. En particular, no incluyas la entrada del usuario en un comando sin verificar cuidadosamente esa entrada, le permite a un hacker manejar un camión virtual a través de tu agujero de seguridad.
Digamos que tienes un programa CGI que permite al usuario ejecutar un "finger" en tu host. Ese script Perl podría tener una línea como
system "finger $username" ;
Pero si un usuario malicioso escribe "james; rm -rf /" como nombre de usuario, tu programa correrá
system "finger james; rm -rf /" ;
que borrará tantos de tus archivos como sea posible, lo
cual probablemente no es lo que querías. Así que verifica
que el nombre de usuario sea válido con algo como
$username!~ /[^w.-]/ || die "Whoa! Buen intento amigo."
;
o usa una forma diferente para el comando system:
system("finger", $username) ;
o busca otra manera de resolver el problema.
Es fácil para un hacker enviar cualquier variable de forma
a tu script con cualquier valor (aún caracteres no imprimibles).
Tu seguridad no debería descansar en campos teniendo ciertos
valores, ya sea que existan o no.
Usuarios que han visto este tema también han visto...
- Introducción a la programación CGI en Pascal
- Ganando Más Control con Scripts de Encabezado No-Analizados
- Enviando un Archivo Existente como Respuesta
- Redactar páginas completas con CGI
- Poniendo tu script en el servidor.
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.