Foros del Web » Programando para Internet » PHP »

htpasswd dinámico

Estas en el tema de htpasswd dinámico en el foro de PHP en Foros del Web. Tengo una base de datos de usuarios y quiero que cada usuario pueda acceder a una serie de pdfs, pero teniendo en cuenta que un ...
  #1 (permalink)  
Antiguo 09/10/2007, 05:13
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
htpasswd dinámico

Tengo una base de datos de usuarios y quiero que cada usuario pueda acceder a una serie de pdfs, pero teniendo en cuenta que un usuario no debe poder acceder a los pdfs de los demás.

No sé cómo enfocar el asunto para hacer el código, para empezar tengo la duda de si poner todos los pdfs en una carpeta o tendrían que ir en carpetas separadas, cada una con su htpasswd .

De otro lado no sé cómo se puede hacer un htpasswd dinámico.

¿Por favor podéis ayudarme a abordar correctamente el asunto? Gracias
  #2 (permalink)  
Antiguo 09/10/2007, 07:51
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Re: htpasswd dinámico

una vez hice un htaccess/htpasswd dinamico pero no era nada seguro ya que se requerian permisos de escritura para el usuario del web, de todas formas si sigues pensando en hacerlo solo seria cuestion de abrir y cerrar el fichero htpasswd. Para una mayor seguridad podrias cambiarle el nombre del htpasswd a uno muy largo como por ejemplo este:

.sadfjnijaoujijJNiuHNJKLNuio123112090

Pero mejor seria una solucion con bases de datos, suerte!!
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 09/10/2007, 09:38
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: htpasswd dinámico

Lo de hacer un htpasswd dinámico es porque es la unicao solucion que se me ocurre para que ningun usuario pueda acceder a los archivos de otro.
Si hay alguna solución para que un usuario no pueda ver los archivos de otro (conociendo el nombre del archivo) sin utilizar htpasswd , por favor, decídmelo.
  #4 (permalink)  
Antiguo 09/10/2007, 09:47
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: htpasswd dinámico

Lo que puedes hacer es poner los pdfs en carpetas distintas y crear una tabla que contenga el id de usuario y la carpeta que le pertenece.

Lo demas es que el usuario entre con su user y pass y saques la info de su carpeta para darle el acceso.

Sobre eso puedes aplicar un .htaccess para enviarlo a una pagina en donde revises si efectivamente esa carpeta a la que esta accediendo es la que posee el cliente y si no lo envias a una pagina de error personalizada o como quieras.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 10/10/2007, 01:41
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: htpasswd dinámico

Cita:
Marvin

Sobre eso puedes aplicar un .htaccess para enviarlo a una pagina en donde revises si efectivamente esa carpeta a la que esta accediendo es la que posee el cliente y si no lo envias a una pagina de error personalizada o como quieras.
¿Cómo sería ese htaccess para revisar si la carpeta a la que accede es la del usuario?
  #6 (permalink)  
Antiguo 10/10/2007, 01:59
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: htpasswd dinámico

Pon los PDFs en una carpeta que no sea accesible via web. Haz que todas las descargas se hagan mediante una URL del tipo descargar.php?fichero=nombredefichero.pdf . En descargar.php compruebas las credenciales del usuario o le rediriges al formulario login o lo que sea. En caso de estar identificado, comprobar si el fichero le pertenece (por medio de una base de datos, etc). En caso afirmativo, lanzar la descarga con las cabeceras HTTP (con los problemas que te puede dar esto con los navegadores).

Despues de que tengas esto funcionando, puedes probar a usar mod_rewrite para que las URLs tipo web.com/descargas/nombrefichero.pdf se traduzcan descargar.php?fichero=nombrefichero.pdf
  #7 (permalink)  
Antiguo 10/10/2007, 03:14
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: htpasswd dinámico

Cita:
DarkJ

En caso de estar identificado, comprobar si el fichero le pertenece (por medio de una base de datos, etc). En caso afirmativo, lanzar la descarga con las cabeceras HTTP (con los problemas que te puede dar esto con los navegadores).
Última pregunta: ¿Como es básicamente el código para "lanzar la descarga con las cabeceras http"?
¿Es muy problemático esto con los navegadores?

Gracias a todos por vuestra ayuda.
  #8 (permalink)  
Antiguo 10/10/2007, 04:23
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Re: htpasswd dinámico

http://es.php.net/header

mira el ejemplo del pdf ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #9 (permalink)  
Antiguo 10/10/2007, 07:19
 
Fecha de Ingreso: octubre-2006
Ubicación: Guadalajara, Mexico
Mensajes: 177
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: htpasswd dinámico

Por que no creas en una tabla a que PDFs tienen acceso y les muestras unicamente deacuerdo a su usuario y contraseña los PDS prpios y tu jalas directamente el PDF por que de lo contrario esta dificil
  #10 (permalink)  
Antiguo 10/10/2007, 10:43
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: htpasswd dinámico

Cita:
Iniciado por ZiTAL Ver Mensaje
http://es.php.net/header

mira el ejemplo del pdf ;)
¿te refieres a esto?

Código PHP:
<?php
// Enviaremos un PDF
header('Content-type: application/pdf');

// Se va a llamar descarga.pdf
header('Content-Disposition: attachment; filename="descarga.pdf"');

// La fuente del PDF se encuentra en original.pdf
readfile('original.pdf');
?>
¿Con esto se iniciia ya directamente la descarga del pdf?
  #11 (permalink)  
Antiguo 10/10/2007, 11:30
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: htpasswd dinámico

Cita:
Iniciado por mrgubu Ver Mensaje
¿Cómo sería ese htaccess para revisar si la carpeta a la que accede es la del usuario?
Suponiendo que las carpetas se encuentran en /users/

.htaccess
Código:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^/users/(.*)/$ checkData.php?folder=$1
Que significan?

Código:
   Options +FollowSymLinks
   RewriteEngine on
Que vamos a usar el mod_rewrite y que se habilite

Código:
RewriteRule ^/users/(.*)/$ checkData.php?folder=$1
RewriteRule = Regla de sobreescritura
^ = Comienzo de URL falsa
(.*) = Cualquier cosa.
$ = Fin de URL falsa
checkData.php?folder= La URL real donde vas a ir
$1 hace referencia a lo que contiene el primer paréntesis en la URL falsa


La verdad no hice un test pero eso deberia funcionar sin mucho problema.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #12 (permalink)  
Antiguo 12/10/2007, 14:24
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: htpasswd dinámico

ok genial muchas gracias a todos por vuestra ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:32.