CodeIgniter User Guide Version 1.6.1


Seguridad

Esta página describe algunas "buenas prácticas" acerca de segurdad web, y detalles de características de seguridad interna de CodeIgniter.

Seguridad en URI

CodeIgniter es justamente restrictivo sobre que caracteres permitir en las cadenas URI para ayudar a minimizar la posibilidad de que datos maliciosos puedan ser pasados a su aplicación. Las URIs sólo pueden contener lo siguiente:

Datos GET, POST, y COOKIE

Los datos GET son simplemente anulados por CodeIgniter ya que el sistema utiliza segmentos URI en vez de las tradicionales query strings de URL (a menos que la opción query string esté habilitada en su archivo config). El arreglo global GET es destruido por la clase de Entrada (input) durante la inicialización del sistema.

Register_globals

Durante la inicialización del sistema, todas las variables globales son destruidas, excepto aquellas encontradas en los arreglos $_POST y $_COOKIE. La rutina de eliminación es efectivamente lo misma que register_globals = off.

magic_quotes_runtime

La directiva magic_quotes_runtime es apagada durante la inicialización del sistema para que no tenga que remover las barras cuando se recuperen datos de la base de datos.

Buenas prácticas

Antes de aceptar cualquier dato en su aplicación, ya sean datos POST desde el envío de un formulario, datos COOKIE, datos URI, datos XML-RPC, o incluso datos desde el arreglo SERVER, está alentado a practicar estos tres pasos de acercamiento:

  1. Filtrar los datos como si fueran contaminados.
  2. Validar los datos para asegurarse que conforman el tipo correcto, largo, tamaño, etc. (a veces, este paso puede reemplazar al paso uno)
  3. Escapar los datos entes de enviarlo a su base de datos.
CodeIgniter provee las siguientes funciones para asistirlo en este proceso