Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/12/2009, 13:22
rodrigo_00
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 6 meses
Puntos: 14
Respuesta: Seguridad con las imagenes.

Lo prometido es deuda :P

Es un ejemplo simple pero lo importante es que entiendas como funciona

Tengo esta estructura de directorios

/img
/public

Public es el root directory, es decir que es lo que pueden ver los usuarios de nuestro sitio, img no esta a su alcance

el htacces es algo asi

Código PHP:
RewriteEngine On
RewriteCond 
%{REQUEST_FILENAME} -[OR]
RewriteCond %{REQUEST_FILENAME} -[OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule 
^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L
El script php es

Código PHP:
// si entro a http://misitio.com/imagen.jpg, $uri sera /imagen.jpg
$uri $_SERVER["REQUEST_URI"];

// si hay algun parametro pasado por GET lo eliminamos
if (strpos($uri"?") !== false) {
    
$uri substr($uri0strpos($uri"?"));
}

$rutaImagen "../img".$img;

/* en este ejemplo el filtro para poder ver o no una imagen consiste en pasar este parametro por GET, en tu caso debes poner que este logueado o no */

$estaLogueado $_GET["logueado"] == 1;

if(
$estaLogueado) {
  if (
file_exists($rutaImagen)) {
    
/* lo mas "importante", a lo que le tienes que prestar atencion es a las proximas 2 lineas, el resto lo puedes implementar de mil formas diferentes */
    
Header("Content-type: image/jpeg");
    echo 
file_get_contents($rutaImagen);
    die();
  } else {
    die(
"La imagen que buscas no existe");
  }
} else {
    die(
"No estas logueado, no tienes acceso a las imagenes privadas");

y esto es todo =)

cualquier cosa que no entiendas aqui estamos :P

Saludos!