Siguiente: Detalles Implementación
Subir: Seguridad en el servidor
Anterior: Seguridad en los CGI
  Índice General
El principal peligro de los CGI proviene de la entrada de datos
en los formularios. Se pueden producir fallos tanto por la introducción
de datos maliciosos de forma premeditada, o bien, por una equivocación
al introducir los datos que provoque una acción inesperada.
- Evitar que un programa se bloquee por la entrada de datos. Un usuario
podría introducir en un campo de texto un documento de varios megas lo que provocaría
que se saturase el servidor y causaría un error en la base de datos. Para evitar
esto en todos los formularios se controla que los campos de texto tengan
la cláusula maxlength que te limita la longitud de la entrada.
- Evitar que la entrada del usuario haga entradas al sistema que no sean seguras.
Para evitar esto se utilizan dos medidas. Comprobar todas las entradas del sistema.
Todos los datos que se introducen son pasados por una expresión regular
que controla que los datos introducidos se ajustan a los caracteres permitidos.
De esta manera se evita que los usuarios puedan meter metacaracteres en los
campos para ejecutar alguna llamada la sistema.
En nuestro caso nos protegemos de que se introduzca código dentro
de las sentencias SQL. Esto se llama ''SQL injection'' y se consigue insertando comillas simples
dentro de las sentencias. Con la expresiones regulares vistas anteriormente se
comprueba que no se permita el uso de comillas simples en nuestros formularios.
Además de comprobar los datos introducidos se utiliza la opción -T en la línea
en la que se llama al interprete de Perl. La opción -T hace que Perl localice las variables
ocultas y no permita el uso de las funciones system(), exec(), piped(), open() o eval().
Cualquier variable que no vaya a utilizar el programa (incluyendo las variables de entorno, STDIN
y las procedentes de la línea de comandos) se considera oculta y no se utilizará.
Siguiente: Detalles Implementación
Subir: Seguridad en el servidor
Anterior: Seguridad en los CGI
  Índice General
Jesús Martín
2003-09-16