Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-01-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 24
kayetano Va por buen camino
Hola

Como bien dice Xianto este código lo único que hace es obligar al navegador a abrir la ventana de descarga.

Si lo que quieres es que no puedan localizar tus archivos puedes hacerlo de dos formas muy fáciles:

Primera opción:
1. Identificar al usuario.
2. Cargar en memoria el archivo, con fopen y fread por ejemplo.
3. Mandar las cabeceras ya citadas.
4. Enviar el contenido del archivo que tenemos cargado en memoria
Código PHP:
echo $datos
De esta forma es imposible que sepan donde esta el archivo, el problema es que si son archivos muy grandes vas a saturar la memoria del servidor.

Segunda opción:
1. Identificar al usuario.
2. Copiar el archivo que se va a descargar en una carpeta temporal. Te aconsejo que utilices la funcion tmpfile() para generar un archivo con nombre único para no sobre escribir el que este descargando otro usuario.
3. Mandas las cabeceras.
4. Envias el archivo desde el directorio temporal.
5. Borras el archivo del directorio temporal, con lo que ya no es accesible para nadie.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #2  
Antiguo 08-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por kayetano
Como bien dice Xianto este código lo único que hace es obligar al navegador a abrir la ventana de descarga.
Lamento diferir pero en el código original, si el archivo se sitúa fuera del árbol de directorios web no hay manera que desde el navegador se vea la ruta.

ReadFile lee el archivo real y lo manda al navegador pero éste no sabe de dóde viene. Lo único que sabe es el nombre que se le asigna en el header y el tamaño.

// Saludos
Responder Con Cita
  #3  
Antiguo 08-01-2006
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Poder: 22
Xianto Va por buen camino
Nunca he dado permisos a PHP fuera del /var/html/ me parece un fallo de seguridad, en el que mucha gente esta de acuerdo.

Pero si lo haces o si el host que tienes te lo permite, pues seria correcto roman !
__________________
El diseño dira si tiene futuro...
Responder Con Cita
  #4  
Antiguo 08-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿En qué consistiría el fallo? Una cosa son los permisos que php tenga y otra los que apache tenga. El hecho de que php pueda acceder a un directorio fuera de htdocs no implica que apache pueda hacerlo. Claro que si el archivo que inicia las descargas no se protege haciendo las verificaciones adecuadas pues entonces sí es inseguro y da lo mismo donde pongamos los archivos.

EDITO:

Sé que puedo equivocarme y estoy abierto a sus argumentos.

// Saludos

Última edición por roman fecha: 08-01-2006 a las 21:25:33.
Responder Con Cita
  #5  
Antiguo 20-01-2006
Avatar de RyCk
RyCk RyCk is offline
Miembro
 
Registrado: ene 2006
Ubicación: Varacruz
Posts: 16
Poder: 0
RyCk Va por buen camino
De hecho tienes razon roman ya que apache es solo un modulo de PHP yo utilizo acceso a otros directorios fuera de /var/www/ por ejemplo /home/usuario/ por mi propia comodidad, la unica diferencia es que esa carpeta la tengo abierta a un VHOST que me lo direcciona a http://dominio/usuario/ apache no puede ír más alla de donde tengo indicado el link virtual asi tenga permisos en home solo me redirecciona la hasta /home/usuario
__________________
RyCk
Responder Con Cita
  #6  
Antiguo 23-01-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 24
kayetano Va por buen camino
Hola

Cita:
Empezado por RyCk
De hecho tienes razon roman ya que apache es solo un modulo de PHP ...
Que yo sepa esto es más bien al contrario, PHP puede ser un modulo de Apache, pero que Apache sea un modulo de PHP es la primera noticia que tengo.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:54:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi