CodeIgniter – Seguridad – Evitar XSS en formularios
Siguiendo con los puntos de seguridad de CodeIgniter, vamos a ver cómo podemos hacer nuestros formularios mas seguros. Es sabido que se puede aprovechar los formularios para poder realizar atques Cross-site scripting (XSS). Empecemos con el artículo CodeIgniter – Seguridad – Evitar XSS en formularios.
Éste, consiste en inyectar código en formulario o enlaces para poder ejectutar instrucciones que pongan en peligro la web. Centrémonos en los formularios…
En CodeIgniter hay dos maneras de aumentar la seguridad en este sentido.
Activar protección XSS en CodeIgniter en configuración
Debemos verificar que en el fichero config, application/config/config.php, la línea siguiente está a True
$config['global_xss_filtering'] = TRUE;
De esta manera toda la información que se pase por formularios, serà limpiado de código.
Protección XSS en CodeIgniter en formularios
Una de las novedades de la versión 3 es que cambia la manera de recibir la información de los formularios en los controladores:
$this->input->post('nombre', TRUE); // Hace limpieza XSS $this->input->post('apellidos', FALSE); // No hace limpieza XSS $this->input->post(array('nombre', 'apellidos'), TRUE); // Hace limpieza XSS
En definitiva, si añadimos TRUE como parámetro hará filtro XSS, y si ponemos FALSE no lo hará. Este parámetro es opcional. En el caso de no añadir este parámetro, cogerá el valor indicado en la variable global que hemos visto anteriormente ($config[‘global_xss_filtering’]).
Espero que os sea de utilidad el artículo CodeIgniter – Seguridad – Evitar XSS en formularios.
Más información
Muchas gracias por el aporte.
Entiendo que si no se pone ningún parámetro:
$this->input->post(‘nombre’);
Y en el config tenemos así:
$config[‘global_xss_filtering’] = TRUE;
Estaría aplicando el filtro en vez de poner todo el tiempo en los input el «True» como parámetro.
Igualmente en el mismo config.php de CI 3 indica que esta directiva ha sido anulada y solo es retrocompatible con versiones anteriores.
Correcto. Si lo modificas en el config, se aplica a todo, y no es necesario ponerlo posteriormente. En cambio, si en el config no pones que se limpie de XSS, entonces, tú puedes campo a campo, decidir que se limpia y qué no.
Dejo enlace con las especificaciones de XSS_Clena de CodeIgniter 3.X
https://codeigniter.com/userguide3/libraries/input.html?highlight=xss