Seguridad php

Solo disponible en BuenasTareas
  • Páginas : 7 (1738 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de noviembre de 2011
Leer documento completo
Vista previa del texto
Desarrollo de sitios web con PHP y MySQL

Tema 7: Seguridad
José Mariano González Romano mariano@lsi.us.es

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

Seguridad en las aplicaciones web
¿Cuánta seguridad es necesaria?
– La seguridadsupone un coste económico y de eficiencia. Hay que 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 ApplicationSecurity 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 toRestrict URL Access

Seguridad en las aplicaciones 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 versiones actualizadas 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

Variables globales
Cuando register_globals está activado en el fichero php.ini, PHP crea automáticamente variables globales a partir de los datos de losformularios y de las cookies Esto puede dar 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 enPHP

Variables globales
Deshabilitar 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 dandoun valor inicial a la variable $superuser:

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 oerror. Para ello se utilizan 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 delservidor (S) y los pará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...
tracking img