Seguridad en paginas web y
Codeigniter
Principales vulnerabilidades
● Inyección
● Cross-Site Scripting (XSS)
● Autentificación y Manejo de Usuarios
●
¿Que es codeigniter?
● Framework ligero escrito en php
● Bibliotecas para ayudar en el desarrollo
● Subir archivos
● Abstr...
Seguridad en Codeigniter
● Funciones hash
● Encriptacion de cookies
● Personalizacion de logs
● Limpieza de inyección de s...
Funciones hash
● En el security helper encontramos:
● dohash(), parámetros string con la información, por 
default usara s...
Encriptacion 
● En esta clase tenemos funciones de 
encriptacion y desencriptacion
● $this­>encrypt­>encode() parámetros u...
Tips de seguridad
● Valida los formularios
● Guarda la sesión en la base de datos
● Encripta las cookies
● Usa Active Reco...
Como validar los datos en los 
formularios
● Usando la clase Form Validation
● Define las reglas de validacion
● $this­>fo...
Corriendo la validacion
if ($this­>form_validation­>run() == FALSE){
$this­>load­>view('myform');
}
else{
$this­>load­>vie...
Sesiones
● Con solo cargar la libreria se crea una sesion y 
una cookie con la siguiente información:
● User Agent
● Sessi...
Guardar la sesión en la base de 
datos
● Crear las tablas necesarias
● Activar la opción en el archivo de configuración
● ...
Encriptar la cookie
● Modifica el valor en el archivo de configuración
● $config['sess_encrypt_cookie'] = TRUE;
● Automáti...
Limpia los datos enviados por 
formulario
● Solo usa la clase input
● $this­>input­>post() primer parámetro el nombre del ...
Hash de las contraseñas
● Usa las funciones hash para encriptar las 
contraseñas
● Almacena la contraseña encriptada no la...
Active Records
● Es la abstraccion de la base de datos
● Funciones para manejar la base de datos
● Modificar los archivos ...
Funciones en los Active Records
● $this­>db­>get(); primer parámetro el nombre 
de la tabla.
● $this­>get_where(); Primer ...
Funciones en los Active Records
● $this­>db­>insert(); primer parametro el nombre 
 de la tabla y el segundo parametro un ...
¿Donde aprender mas?
● Documentación de codeigniter
● http://codeigniter.com/user_guide/
● En Google!
● Tutoriales en inte...
¿Dudas?
Gracias
Upcoming SlideShare
Loading in …5
×

Disi codeigniter

2,629 views
2,510 views

Published on

Una presentacion sobre como desarollar aplicaciones web seguras con codeigniter

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
2,629
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
70
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

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

×