Foros del Web » Programando para Internet » PHP »

Se Descarga el php ¿Que Hago Para Evitarlo?

Estas en el tema de Se Descarga el php ¿Que Hago Para Evitarlo? en el foro de PHP en Foros del Web. Hola no ya tengo un script resuelto para la descarga de imagenes ejemplo Código: pagina/force-download.php?file=pic7/668590BRITNEY.jpg y ahi todo bien. Ahora el problema es que se ...
  #1 (permalink)  
Antiguo 03/09/2009, 13:19
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Se Descarga el php ¿Que Hago Para Evitarlo?

Hola no ya tengo un script resuelto para la descarga de imagenes ejemplo
Código:
pagina/force-download.php?file=pic7/668590BRITNEY.jpg
y ahi todo bien.

Ahora el problema es que se descarga el php de mi sitio tambien!!! y eso es grave!!
ejemplo
Código:
pagina/force-download.php?file=cualquier.php
y segun el codigo no tiene por que descargarlo. ayuda que hago Alhgo en en codigo ?? O algun .htaccess que me puedan brindar para evitar esto? Gracias De Ante mano!

force-download.php


Código PHP:
<?php

$filename 
$_GET['file'];

// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression'))
  
ini_set('zlib.output_compression''Off');

// addition by Jorg Weske
$file_extension strtolower(substr(strrchr($filename,"."),1));

if( 
$filename == "" 
{
  echo 
"<html><title>eLouai's Download Script</title><body>ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</body></html>";
  exit;
} elseif ( ! 
file_exists$filename ) ) 
{
  echo 
"<html><title>eLouai's Download Script</title><body>ERROR: File not found. USE force-download.php?file=filepath</body></html>";
  exit;
};
switch( 
$file_extension )
{
  case 
"pdf"$ctype="application/pdf"; break;
  case 
"exe"$ctype="application/octet-stream"; break;
  case 
"zip"$ctype="application/zip"; break;
  case 
"doc"$ctype="application/msword"; break;
  case 
"xls"$ctype="application/vnd.ms-excel"; break;
  case 
"ppt"$ctype="application/vnd.ms-powerpoint"; break;
  case 
"gif"$ctype="image/gif"; break;
  case 
"png"$ctype="image/png"; break;
  case 
"jpeg":
  case 
"jpg"$ctype="image/jpg"; break;
  default: 
$ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers 
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();

?>
  #2 (permalink)  
Antiguo 03/09/2009, 13:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Vas a tener que agregar un control para evitar que descarguen archivos de otro lado, al principio de tu script filtrando los tipos de archivo que no quieres, o despues en el switch.

Saludos.
  #3 (permalink)  
Antiguo 03/09/2009, 13:22
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

perdona mi ignorancia sabre un 20% de php que hago?
  #4 (permalink)  
Antiguo 03/09/2009, 13:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Puedes empezar por leer el wiki del Foro, y el Manual de PHP del foro, una vez que sepas los conceptos básicos no te debe de ser complicado agregar un if() para preguntar si es una extensión no permitida y agregarla a tu script.

Saludos.
  #5 (permalink)  
Antiguo 03/09/2009, 13:32
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

ijole perdon por las molestias, por lo mismo estoy empezando a comprender un poco esto y me llevara unos dias entender por si mismo el problema. Y agradeceria si hay alguien mas que pueda enseñarme el codigo a la manera de Que Gator me lo explica me es mas facil aprender asi. Pero de todos modos gator gracias
  #6 (permalink)  
Antiguo 03/09/2009, 14:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Lo recomendable es que leas, acuerdate que debes poder desenvolverte. Lee el manual y vas a ver que lo vas a lograr, porque lo que pides es bastante basico.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 03/09/2009, 14:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Simplemente es aplicar un poco de logica, mira este pseudocodigo:
Código:
if (extension == extension_no_permitida) {
       mostrar_mensaje 'no se puede descargar este tipo de archivos'
} else {
       descargar_archivo
}
  #8 (permalink)  
Antiguo 03/09/2009, 14:34
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

No simplemente ahora no descarga ningun tipo de extension
  #9 (permalink)  
Antiguo 03/09/2009, 14:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Copiaste y pegaste lo que te dijo GatorV?

Claramente lo dijo, es un pseudocodigo, es decir, solamente una explicacion de como debe ser la logica en tu scritp, debes interpretarlo y reemplazarlo por las instrucciones PHP adecuadas.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 03/09/2009, 14:58
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Es mejor no dar molestia me siento hasta mal, si gustan pueden eliminar el tema solo he tratado de comprender pero tal vez no doy para analizar mas solo queria evitar la descarga de esa extension y si soy despistado pero nimodo.No quiero que se desesperen conmigo si trate varias veces pero nada, si lo que piensan es que no se colocar la condicional es cierto ni como agregar la extension
  #11 (permalink)  
Antiguo 03/09/2009, 15:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Pero, te sugiero que leas el manual vas a ver que se te hara bien facil. Cuando lo hayas leido y empiezes a crearlo, si te trancas nos dejas saber. Pero debes leer.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 03/09/2009, 15:16
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

A ver algo asi? Me van a mandar a china si no es asi xD

Cita:
if ($file_extension == case "php") {
echo"no se puede descargar este tipo de archivos'";
}
  #13 (permalink)  
Antiguo 03/09/2009, 15:18
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Edgarel, no es molestia, la idea es que aprendas; supon que alguno de nosotros te da la solucion, la aplicas y funciona. Seguramente lo agradeceras, pero tal vez no analices lo que se hizo y la proxima vez que tengas una duda similar, volveras a depender de que alguien mas lo haga por ti; pero, si entiendes lo que estas haciendo, poco a poco podras comenzar a resolver los problemas por ti mismo.

Edito:

Casi, casi es asi, yo cambiaria el echo "mensaje"; por un die("mensaje"); de forma que el script finalice su ejecucion, aparte de quitar el case despues de ==
__________________
- León, Guanajuato
- GV-Foto
  #14 (permalink)  
Antiguo 03/09/2009, 15:19
Avatar de MilkZoft  
Fecha de Ingreso: junio-2009
Ubicación: Colima, México
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 4
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Se supone que no pueden descargar archivos PHP, si llegarás a bajar uno, unicamente podrías ver el código HTML más no su código PHP, saludos.
  #15 (permalink)  
Antiguo 03/09/2009, 15:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Quitale el case y haz la prueba
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 03/09/2009, 15:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Cita:
Iniciado por MilkZoft
Se supone que no pueden descargar archivos PHP, si llegarás a bajar uno, unicamente podrías ver el código HTML más no su código PHP, saludos.
En este caso, si el PHP lee otro archivo (con la extension que sea) y lo entrega al navegador, si se puede.
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 03/09/2009, 17:58
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Se Descarga el php ¿Que Hago Para Evitarlo?

Ya quedoooo! Increible Muchas Gracias Otra Experiencia y conocimiento mas! xD Muchas Gracias a los que estuvieron pendientes y de nuevo reitero las gracias!

if ($file_extension == "php") {
die("no se puede descargar este tipo de archivos");
}
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 15:51.