Segurida

Solo disponible en BuenasTareas
  • Páginas : 7 (1744 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de enero de 2012
Leer documento completo
Vista previa del texto
dDesarrollo de sitios web con PHP y MySQL

Tema 7: Seguridad

Tema 7: Seguridad
1. 2. 3. 4. 5. 6. 7. 8.

Seguridad en las aplicaciones web Seguridad en PHP Variables globales Nombres de ficheros Subida de ficheros Bibliotecas Formularios Inyección SQL

1

Seguridad en las aplicaciones web
¿Cuánta seguridad es necesaria?
– La seguridad supone un coste económico y de eficiencia. Hayque disponer de la adecuada, ni más ni menos

Reglas:
– El riesgo cero no es práctico – Hay diversas formas de mitigar el riesgo – No se puede gastar un millón para proteger un céntimo

Seguridad en las aplicaciones web
Amenazas más importantes: Top 10
– The Open Web Application Security Project (OWASP) The Ten Most Critical Web Application Security Vulnerabilities (2007)http://www.owasp.org/documentation/topten
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Cross Site Scripting (XSS) Injection Flaws Malicious File Execution Insecure Direct Object Reference Cross Site Request Forgery (CSRF) Information Leakage and Improper Error Handling Broken Authentication and Session Management Insecure Cryptographic Storage Insecure Communications Failure to Restrict URL Access

2

Seguridad en lasaplicaciones web
Seguridad en el cliente
– Código móvil

Seguridad en el servidor
– Servidor web, servidor de bases de datos, lenguajes de servidor

Seguridad en la aplicación
– Control de acceso – Validación de datos de entrada – Programación segura

Seguridad en la comunicación
– Certificados digitales, SSL

Seguridad en PHP
Primera recomendación:
– Disponer siempre de versionesactualizadas de Apache y PHP

Aspectos de PHP que pueden dar lugar a vulnerabilidades:
– – – – – Variables globales Nombres de ficheros Subida de ficheros Bibliotecas Datos enviados desde formularios

3

Variables globales
Cuando register_globals está activado en el fichero php.ini, PHP crea automáticamente variables globales a partir de los datos de los formularios y de las cookies Esto puededar lugar a problemas como en el ejemplo siguiente:

Variables globales
Una llamada a este script de la forma
pagina.php?superuser=1

permitiría obtener privilegios de superusuario Para resolver este problema existen tres soluciones:
– Deshabilitar register_globals en el fichero php.ini – Inicializar las variables – Establecer el orden de las variables en PHP

4

Variables globalesDeshabilitar register_globals en el fichero php.ini
– La directiva register_globals del fichero php.ini establece si se admite o no la creación automática de variables globales – A partir de PHP 4.2.0 el valor por defecto de esta directiva es off, que es el valor recomendable

Variables globales
Inicializar las variables
– El problema anterior se soluciona dando un valor inicial a la variable$superuser:

5

Variables globales
Inicializar las variables
– Es recomendable inicializar todas las variables antes de usarlas. Se puede usar la directiva error_reporting=E_ALL en php.ini para que se muestre un aviso cuando se use una variable que no haya sido previamente inicializada – En un entorno de producción debe evitarse la aparición de mensajes de aviso o error. Para ello seutilizan las siguientes directivas en php.ini:
display_errors = off log_errors = on error_log = /var/log/php_errors.log

– Los errores irán al fichero especificado en lugar de mostrarse en la pantalla

Variables globales
Establecer el orden de las variables en PHP
– PHP crea automáticamente variables globales a partir del entorno (E), las cookies (C), la información del servidor (S) y losparámetros GET (G) y POST (P) – La directiva variables_order controla el orden de estas variables. El valor por defecto es “EGPCS” – Permitir la creación de variables globales desde parámetros GET y POST y desde cookies es potencialmente peligroso. Un posible valor para variables_order que evita esto es “ES” – En tal caso para acceder a los parámetros de los formularios y a las cookies se deben utilizar...
tracking img