Cita:
Iniciado por pateketrueke
¡realmente vale la pena!
lo mejor que puedes hacer en cuanto a seguridad es tener los scripts de ejecución fuera del alcance del usuario, así que me parece una técnica muy acertada...

Muchas gracias pateketrueke,
Se te ocurre alguna cosa más para aplicar al modelo de web modular?
conf.php
Código PHP:
Ver original<?php
/*
* Archivo de configuración para nuestra aplicación modularizada.
* Definimos valores por defecto y datos para cada uno de nuestros módulos.
*/
define('MODULO_DEFECTO', 'home'); define('LAYOUT_DEFECTO', 'layout_simple.php'); define('LAYOUT_FUTBOL', 'layout_futbol.php'); define('LAYOUT_404', 'layout_404.php');
'archivo' => 'home.php',
'layout' => LAYOUT_DEFECTO );
'archivo' => 'ayuda/faq.php',
'layout' => LAYOUT_DEFECTO );
$conf['soporte'] = array( 'archivo' => 'ayuda/soporte.php',
'layout' => LAYOUT_DEFECTO );
$conf['directorio/futbol'] = array( 'archivo' => 'directorio/futbol.php',
'layout' => LAYOUT_FUTBOL );
$conf['articulo'] = array( 'archivo' => 'articulos.php',
'layout' => LAYOUT_DEFECTO );
/*$conf['imp_art'] = array(
'archivo' => $conf['articulo']['archivo'],
'layout' => 'imprimir.php' );
*/
?>
index.php
Código PHP:
Ver original<?php
//error_reporting(E_ALL);
// Primero incluimos el archivo de configuración
include('conf.php');
/** Verificamos que se haya escogido un modulo, sino
* tomamos el valor por defecto de la configuración.
*/
if (!empty($_GET['pagina'])) $modulo = $_GET['pagina'];
else{
$modulo = MODULO_DEFECTO;
}
/* Saneamos la variable de entrada */
$modulo=(string)$module;
/** También debemos verificar que el valor que nos
* pasaron, corresponde a un modulo que existe, caso
* contrario, cargamos el modulo por defecto,
pero en mi caso redirigo a una página de error 404.
*/
if (empty($conf[$modulo])){ //$modulo = MODULO_DEFECTO;
header("HTTP/1.0 404 Not Found"); header("Status: 404 Not Found"); echo "Pagina que buscas no existe";
}
//print_r($conf[$modulo]);
/* Si existe la variable articulo y la urlamigable*/
if ($_GET['pagina']=='articulo' && !empty($_GET['urlamigable'])){ $tit_amigable_articulo=$_GET['urlamigable'];
/* Saneamos la variable de entrada */
$tit_amigable_articulo=(string)$tit_amigable;
}
/** Ahora determinamos que archivo de Layout tendrá
* este módulo, si no tiene ninguno asignado, utilizamos
* el que viene por defecto
*/
if (empty($conf[$modulo]['layout'])){ $conf[$modulo]['layout'] = LAYOUT_DEFECTO;
}
/** Aqui podemos colocar todos los comandos necesarios para
* realizar las tareas que se deben repetir en cada recarga
* del index.php - En el ejemplo, conexión a la base de datos.
*
* include('clases/class.DB.php');
* $db = new DB();
* $db->conectar();
*/
include(LIB_PATH.'/Conectar_BD.php');
/** Finalmente, cargamos el archivo de Layout que a su vez, se
* encargará de incluir al módulo propiamente dicho. si el archivo
* no existiera, cargamos directamente el módulo. También es un
* buen lugar para incluir Headers y Footers comunes.
*/
$path_layout = LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
$path_modulo = MODULO_PATH.'/'.$conf[$modulo]['archivo'];
include( $path_layout );
else
include( $path_modulo );
else
die('Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>'); ?>
Muchas gracias de antemano!