Fichero config.php

El fichero **config.php** contiene una serie de opciones de configuración (almacenadas en un array indexado de forma asociativa llamado **$config**) donde CodeIgniter suele guardar información y configuración de nuestra aplicación.

La primera opción de configuración que necesitamos realizar dentro de **config.php** es la base URL de nuestra aplicación. Debemos colocar la URL absoluta (incluyendo el http://) en $config ['base_url']. Por ejemplo:

$config [ 'base_url' ] = "http://localhost/proyecto/";

Una vez establecido ese parámetro de configuración, podemos obtener el valor de dicho parámetro utilizando el helper de CodeIgniter **base_url()**, que nos resultará muy útil, ya que, nos evitará reescribir URLs completas dentro de nuestra aplicación, ideal sobre todo para cuando migremos la aplicación de un entorno de desarrollo a un entorno de pruebas o preproducción/producción.

La segunda característica a configurar es el valor de la página principal de nuestra aplicación editando el valor de $config['index_page']. Por defecto, CodeIgniter coloca el fichero index.php en todas las URLs. Muchos desarrolladores que utilizan CodeIgniter prefieren dejar este valor en blanco, tal que así:

$config [ 'index_page' ] = '';

Para que no aparezca el fichero **index.php** en la ruta de nuestra aplicación debemos configurar un fichero **.htaccess** en el directorio root de CodeIgntier. Lo dejaremos con el valor que tiene por defecto y más adelante ya veremos como eliminar ese fichero de la URL.

Una vez establecido el valor de **base_url** no hay mucho más que configurar, dejaremos el valor por defecto de cada propiedad. Vamos a ver el valor que tiene cada parámetro:

$config['uri_protocol'] = "AUTO";
$config['url_suffix'] = "";
$config['language'] = "english";
$config['charset'] = "UTF-8";
$config['enable_hooks'] = FALSE;
$config['subclass_prefix'] = 'MY_';
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd'; // experimental not currently in use
$config['log_threshold'] = 0;
$config['log_path'] = '';
$config['log_date_format'] = 'Y-m-d H:i:s';
$config['cache_path'] = '';
$config['encryption_key'] = "";
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['cookie_prefix'] = "";
$config['cookie_domain'] = "";
$config['cookie_path'] = "/";
$config['global_xss_filtering'] = FALSE;
$config['compress_output'] = FALSE;
$config['time_reference'] = 'local';
$config['rewrite_short_tags'] = FALSE;
$config['proxy_ips'] = '';

Para más información de cada una de las opciones de configuración, basta con leer los comentarios introducidos por los desarrolladores de CodeIgniter en **application/config/config.php**. Más adelante veremos cada una de las opciones de configuración relacionadas con algunas secciones posteriores. Por ejemplo, si queremos utilizar la clase de encriptación o configurar el nivel de registro de errores para depurar, tendremos que configurar esos valores en este fichero.

$config [ 'global_xss_filtering' ] = FALSE;

La opción de filtrado **XSS global** (propiedad **global_xss_filtering**) se establece a FALSE por defecto. El manual de usuario nos advierte que establecer a TRUE esta característica agrega gran cantidad de sobrecarga en el rendimiento del sistema. Ya veremos las funciones que nos proporciona CodeIgniter para filtrar datos que puedan vulnerar nuestra aplicación.

Continuando con el tema de la seguridad, hay que destacar que si establecemos la variable **sess_encrypt_cookie** a TRUE, tendremos que introducir una cadena de 32 caracteres en la propiedad **encryption_key** . Configurar estas dos opciones nos servirá para encriptar los datos almacenados en las sesiones, y a su vez proporcionamos una semilla a cualquier método hash que utilicemos. Más adelante veremos más información sobre seguridad en CodeIgniter.

Antes de continuar sería interesante analizar el flujo de trabajo (workflow) del framework ante una petición del usuario.

results matching ""

    No results matching ""