Foros del Web » Programando para Internet » PHP »

Pregunta de Seguridad en Upload PHP

Estas en el tema de Pregunta de Seguridad en Upload PHP en el foro de PHP en Foros del Web. Saludos Amigos, una pregunta. Saben que hay dos maneras que conozco de subir archivos a mi servidor via PHP.... La primera via es por la ...
  #1 (permalink)  
Antiguo 09/07/2010, 11:37
Avatar de cambalacheweb  
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 100
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta de Seguridad en Upload PHP

Saludos Amigos, una pregunta.

Saben que hay dos maneras que conozco de subir archivos a mi servidor via PHP.... La primera via es por la famosa move_uploaded_file(), y la segunda via es haciendo por una conexion FTP con el ftp_connect(), ftp_put(), etc.

La pregunta es: Cuál es el nivel de seguridad de ambas ??? Qué es más seguro usar para transferir o para que los usuarios de una página suban archivos a un web site?? Cual tiene menos riesgo de ser Hackeada ???

Gracias por sus respuestas.

Atte,

Angel R.
Caracas - Venezuela.
  #2 (permalink)  
Antiguo 09/07/2010, 11:44
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: Pregunta de Seguridad en Upload PHP

La primera es para subir archivos desde el cliente a tu servidor, el segundo es para transferir archivos via FTP de tu servidor al servidor FTP.

Por ende son diferentes, si lo que quieres es subir archivos desde tu pagina web, tienes que usar un HTTP Upload, no puedes usar un ftp para eso (a menos que tuvieras un servidor FTP en tu maquina).

Saludos.
  #3 (permalink)  
Antiguo 09/07/2010, 11:46
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta de Seguridad en Upload PHP

Concuerdo con GatorV
  #4 (permalink)  
Antiguo 09/07/2010, 11:52
Avatar de cambalacheweb  
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 100
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Pregunta de Seguridad en Upload PHP

Ok, pero digamos que tenemos una página con un formulario donde el Cliente va mandar una imagen con sus datos. Podría haber dos maneras de llevar ese archivo que envía mi cliente al servidor de la página, via move_uploaded_file() o vía ftp_connect(). De las dos maneras el usuario puede colocar la imagen en el servidor. Ambos métodos pueden generar el mismo resultado.... pregunto: Qué es recomendable usar?

Gracias.
  #5 (permalink)  
Antiguo 09/07/2010, 13:52
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: Pregunta de Seguridad en Upload PHP

Es imposible que lo hagas via ftp_connect() como ya te indique la única forma de enviar desde una pagina web al servidor es usando un HTTP Upload y recibirlo en PHP.

move_uploaded_file solo mueve el archivo del directorio temp del server a su ubicación final, es lo mismo que usar copy() solo que aseguras que sea un archivo enviado vía el browser.

Saludos.
  #6 (permalink)  
Antiguo 09/07/2010, 14:04
Avatar de cambalacheweb  
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 100
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Pregunta de Seguridad en Upload PHP

Ok entiendo, pero fíjate en este código....

Código PHP:

if (is_uploaded_file($_FILES['miarchivo']['tmp_name'])) 
{    
$archivo=$_FILES['miarchivo']["name"];
$directorio='archivos_recibidos/';
$temporal=$_FILES['miarchivo']["tmp_name"];
$carga_archivo=move_uploaded_file($temporal,$directorio.$archivo);


    if(
$carga_archivo)
    {
    
        
        
$cid ftp_connect("ftp.tecnoprint2090.com.ve");
        
$resultado ftp_login($cid"abc","123");
    
        
ftp_chdir($cid"upload");
        if (
ftp_put($cid$archivo$directorio.$archivoFTP_ASCII)) {
         echo 
"Carga Exitosa de Archivo.\n";
        } else {
         echo 
"Hubo un problema durante la transferencia de Archivos\n";
        }
    
        
ftp_close($cid);
        
    }



De esta manera puedo subir un archivo que esté enviando un usuario tanto a mi servidor como a otro servidor, se envía a ambos lugares sin ningún problema, y podría usar la propia conexión FTP para que mi usuario me envíe archivos a mi servidor desde su PC.

Saludos.
  #7 (permalink)  
Antiguo 09/07/2010, 14:29
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: Pregunta de Seguridad en Upload PHP

Es lo que te decia, si vas a enviar desde un browser, tienes que hacer un http upload desde el formulario y recibirlo usando el array $_FILES.

Luego usas ftp_connect para transferirlo desde tu server al server FTP, por eso como te comento son dos diferentes acciones, no puedes usar ftp solo para enviar archivos desde un browser, ya que el browser solo soporta hacer http uploads.

Saludos.
  #8 (permalink)  
Antiguo 09/07/2010, 14:30
Avatar de cambalacheweb  
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 100
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Pregunta de Seguridad en Upload PHP

Ok Gracias Amigo !!

Etiquetas: seguridad, upload
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 17:03.