elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Proteger acceso a carpeta sin no estamos logeados[RESUELTO!]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Proteger acceso a carpeta sin no estamos logeados[RESUELTO!]  (Leído 4,255 veces)
roilivethelife

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Proteger acceso a carpeta sin no estamos logeados[RESUELTO!]
« en: 27 Febrero 2012, 22:38 pm »

Hola!
tengo un server web en el que hay que logearse para acceder al explorador de archivos.
El problema es que si tienes el link completo puedes descargarte el archivo sin estar logeado

Quiero utilizar algo como (no es por hacer spam) al intentar acceder a este archivo:
http://www.scenebeta.com/system/files/private/DeluxePacmanv196WinENG.rar

si estas logeado se descarga
si no te envia a una pagina de login

he intentado trastear con el .htaccess pero no se como leer si está la persona logeada(utilizo php session)

gracias!

EDIT:
He encontrado como conseguir proteger el acceso a archivos si no tienen privilegios:
El sistema consta de 3 archivos:

.htaccess
Código:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^archivos/(.*)$ /docs/descargar.php?file=archivos/$1 [R,L]

descargar.php
Código:
<?php
// Creado por Maflw en 2011
// Publicado en http://maflw.webuda.com por
  // forza la descarga del archivo
        //MODIFICADO POR ROILIVETHELIFE
if(isset($_GET['file']) && $_GET['file']!="" && $_GET['file']!="descargar.php"){
$file = $_GET['file'];
$path = str_replace(" ", "-", $_GET['file']);
$filename = basename($path);
if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.$filename);
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
}
?>

y el otro archivo es el ENCODE explorer http://encode-explorer.siineiolekala.net/

Teneis que modificar el descargar.php para que descarge el archivo unicamente si está logeado(eso depende del sistema que use cada uno)
El encode explorer lo tengo modificado con el mismo sistema para no poder ver el listado de archivos si el user no está logeado.

En los archivos ejemplo la web esta distribuida asi:
Citar
Localhost/docs->archivos del encode explorer, el descargar.php y el htaccess
Localhost/docs/archivos-> donde están los archivos


EL unico fallo son las tildes, que no encontre la forma de que funcionase bien, hay que modificar el htaccess para resolverlo, y debeis arreglar el descargar.php para que no usen cosas como ../../
Salu2!




« Última modificación: 4 Marzo 2012, 14:38 pm por roilivethelife » En línea

Graphixx


Desconectado Desconectado

Mensajes: 1.336


Full Stack Developer


Ver Perfil WWW
Re: Proteger acceso a carpeta sin no estamos logeados
« Respuesta #1 en: 28 Febrero 2012, 10:40 am »

Bastante interesante el tema, estuve buscando como y tampoco encontre referentes. Cualquier cosa posteo.


En línea

Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Proteger acceso a carpeta sin no estamos logeados
« Respuesta #2 en: 28 Febrero 2012, 12:21 pm »

Hola,

Lamentablemente hasta donde yo se, .htaccess no se lleva con las sessiones en php.
Puede leer cookies (%{HTTP_COOKIE}) pero de ahí, a saber el nombre de la session... tela.

Que haría yo..

Forzar descarga mediante PHP. Me explico.

Tenemos un archivo que llamaremos descarga.php y que puede recibir una variable get con el nombre del archivo que quieren descargar.

En ese PHP, tendríamos un sistema que compruebe si el usuario esta logeado y en caso de estarlo, forzara mediante headers, la descarga del archivo de ese nombre.

Mientras tanto, los archivos "originales" (los que están en la carpeta que PHP podrá acceder) estarían protegidos bajo un .htaccess que permita el acceso unicamente a
127.0.0.1 (osease el propio servidor).

Mas o menos es lo que haría xD

Saludos
En línea

roilivethelife

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: Proteger acceso a carpeta sin no estamos logeados
« Respuesta #3 en: 28 Febrero 2012, 15:31 pm »

Creo que me acabas de encender la bombilla :D
Puedo hacer lo siguiente:
El explorador que uso es bastante parecido al listado que hace el apache.
Puedo hacer que el explorador pueda acceder a los archivos para que funcione, y cuando el usuario quiera descargarlos por ejemplo localhost/descargas/archivo1.txt el .htaccess redirija a localhost/descargas.php&file=archivo1.txt

Si no me equivoco con lo que he leido del .htaccess puedo hacer eso
-------------------
otra posibilidad seria cambiar el phpsesion por cookies, y asi de paso aprendo a usarlas :)

Voy a intentar hacer mi idea y posteo el codigo porque creo que puede se muy util

Saludos!
En línea

roilivethelife

Desconectado Desconectado

Mensajes: 54


Ver Perfil
No se como seguir....
« Respuesta #4 en: 28 Febrero 2012, 19:36 pm »

Mi htaccess:
Código:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^archivos/(.*)$ descargar.php?file=$1 [L]

Teoricamente cuando entro en mipagina/archivos/file1.txt tendria que redirigirme a:
mipagina/descargar.php?file=file1.txt

Pero no lo hace... why?
Y una duda mas, como podria hacer si el archivo está en una subcarpeta?
mipagina/archivos/subcarpeta/file1.txt

GRacias por responder :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Proteger una carpeta
Scripting
Fuen 2 2,580 Último mensaje 22 Enero 2009, 23:40 pm
por SmartGenius
Proteger carpeta
Seguridad
usuani 4 4,122 Último mensaje 13 Mayo 2010, 03:10 am
por rockernault
RESUELTO. crear carpeta en j2ME
Java
daaran 2 4,573 Último mensaje 9 Agosto 2010, 00:25 am
por daaran
Proteger carpeta
Windows
halseq 5 4,205 Último mensaje 27 Octubre 2010, 20:48 pm
por Darioxhcx
Proteger mi cisco 805 de icmp y de acceso a las dir de mi red externa y brodcast
Hacking
mercita2003 3 3,176 Último mensaje 26 Septiembre 2013, 15:19 pm
por pepegom
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines