Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Disi codeigniter

2,713 views

Published on

Una presentacion sobre como desarollar aplicaciones web seguras con codeigniter

Published in: Technology
  • Be the first to like this

Disi codeigniter

  1. 1. Seguridad en paginas web y Codeigniter
  2. 2. Principales vulnerabilidades ● Inyección ● Cross-Site Scripting (XSS) ● Autentificación y Manejo de Usuarios ●
  3. 3. ¿Que es codeigniter? ● Framework ligero escrito en php ● Bibliotecas para ayudar en el desarrollo ● Subir archivos ● Abstracción de la base de datos ● Carrito de compras ● Paginación ● encriptacion
  4. 4. Seguridad en Codeigniter ● Funciones hash ● Encriptacion de cookies ● Personalizacion de logs ● Limpieza de inyección de sql ● Validación de formularios ● Limpieza de Cross­site script ● Permite revisar la ip y el user agent
  5. 5. Funciones hash ● En el security helper encontramos: ● dohash(), parámetros string con la información, por  default usara sha1 ● xss_clean() parámetros string con la información,  limpia posibles ataques de cross­site script
  6. 6. Encriptacion  ● En esta clase tenemos funciones de  encriptacion y desencriptacion ● $this­>encrypt­>encode() parámetros un string con  el mensaje a ocultar, opcional llave de encriptacion ● $this­>encrypt­>decode() parametros un string con  el mensaje encriptado 
  7. 7. Tips de seguridad ● Valida los formularios ● Guarda la sesión en la base de datos ● Encripta las cookies ● Usa Active Records para consultas de la base  de datos ● Limpia los datos enviados por los formularios ● No uses las contraseñas originales usa las  tablas hash de estas 
  8. 8. Como validar los datos en los  formularios ● Usando la clase Form Validation ● Define las reglas de validacion ● $this­>form_validation­>set_rules('usuario',  'Usuario', 'required'); Pirmer parametro el nombre  del input, segundo parametro la etiqueta del input y  el tercer parametro es el tipo de verificacion 
  9. 9. Corriendo la validacion if ($this­>form_validation­>run() == FALSE){ $this­>load­>view('myform'); } else{ $this­>load­>view('formsuccess'); }
  10. 10. Sesiones ● Con solo cargar la libreria se crea una sesion y  una cookie con la siguiente información: ● User Agent ● Session id ● Last activity ● IP ● La libreria se carga con: ● $this­>load­>library('session');
  11. 11. Guardar la sesión en la base de  datos ● Crear las tablas necesarias ● Activar la opción en el archivo de configuración ● $config['sess_use_database'] = TRUE;  ● Automáticamente guarda los datos ● Automáticamente verifica la información de la  cookie con la almacenada en la base de datos  si es valida continua si no destruye la sesión  
  12. 12. Encriptar la cookie ● Modifica el valor en el archivo de configuración ● $config['sess_encrypt_cookie'] = TRUE; ● Automáticamente encripta y desencripta la  información en la cookie
  13. 13. Limpia los datos enviados por  formulario ● Solo usa la clase input ● $this­>input­>post() primer parámetro el nombre del  formulario, segundo parámetro un booleano  indicando si se pasa o no por el filtro xss
  14. 14. Hash de las contraseñas ● Usa las funciones hash para encriptar las  contraseñas ● Almacena la contraseña encriptada no la  original ● Encripta del lado del cliente y de el lado del  servidor  ● dohash($contraseña);
  15. 15. Active Records ● Es la abstraccion de la base de datos ● Funciones para manejar la base de datos ● Modificar los archivos de configuracion ● Carga la base de datos (Conexion automatica) ● $this­>load­>database();
  16. 16. Funciones en los Active Records ● $this­>db­>get(); primer parámetro el nombre  de la tabla. ● $this­>get_where(); Primer parámetro nombre  de la tabla, segundo parámetro arreglo con la  condición, tercer parámetro el limite y el cuarto  parámetro el offset ● Array('id'=>$id);
  17. 17. Funciones en los Active Records ● $this­>db­>insert(); primer parametro el nombre   de la tabla y el segundo parametro un arreglo  con la informacion ● Array( 'id'=>$id, 'Nombre'=>$nombre );
  18. 18. ¿Donde aprender mas? ● Documentación de codeigniter ● http://codeigniter.com/user_guide/ ● En Google! ● Tutoriales en internet ● http://www.kentverger.com/tag/codeigniter/ ● La foto del fondo esta licenciada como Creative   Commons y el autor es Adam Mulligan ● http://www.flickr.com/photos/amulligan/with/197104755/ ● Esta presentación esta bajo creative commons ●
  19. 19. ¿Dudas?
  20. 20. Gracias

×