Foros del Web » Programando para Internet » PHP »

utentificacion para subir archivos

Estas en el tema de utentificacion para subir archivos en el foro de PHP en Foros del Web. hola a todos tengo unas preguntitas tengo mi pagina alguien mejor dicho un amigo aveces necesita subir imagenes al hosting y encontre un script para ...
  #1 (permalink)  
Antiguo 17/04/2003, 23:23
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
utentificacion para subir archivos

hola a todos
tengo unas preguntitas

tengo mi pagina alguien mejor dicho un amigo aveces necesita subir imagenes al hosting y encontre un script para hacerlo en php pero mi problema pasa por que cualquiera se puede meter donde tengo ese script y subir archivos

hay alguna forma para restringir ese script como por ejemplo que le pida un user y pass

me informe un poco en .htaccess pero el problema es que restringe todo el acceso a esa carpeta y lo que hace mi amigo es que esas imagenes las muestrar en diferentes foros, pero como esta restringida a todos les va a pedir la password y user

Alguien tiene alguna forma para solucionar esto
????

ademas tengo el script perfecto para subir archivos editado al idioma español para el que lo quiera


salu2
  #2 (permalink)  
Antiguo 17/04/2003, 23:39
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
si eres un usuario solamente o varios, trata de hacer una especie como de llave única, sin necesidad de crear un sistema de usuarios:

1.- En un archivo llamado llave.html (o como quieras), trata de hacerte un formulario de valores $usuario y $password, ahh, y que lleve de accion POST, diriguiendose al archivo candado.php

2.- En candado.php pon esto:

Código PHP:
<? 
// Rescatamos los valores de llave.html
$usuario=$_POST['usuario'];
$password=$_POST['password'];
// Creamos el usuario y el password que necesitamos
$user="usuario_x";
$pass="el_password";
// Comprobamos si usuario y password se escribieron
IF ($usuario=="") { ?>
Usuario no escrito, regresar.
<? } ELSE IF ($password=="") { ?>
Password no escrito, regresar.
<? } ELSE { 
// Comprobando autenticidad

IF ($usuario==$user) { IF ($password==$pass) { ?>Registro exitoso <?
// Aquí puedes poner un header o un include para el archivo que quieres acceder
exit; } } }
// Aquí se topa con pared si son incorrectos los datos
?> Incorrectos el usuario y el password.
Pd... podras pasarme ese código, mandame un Mensaje Privado.
  #3 (permalink)  
Antiguo 18/04/2003, 17:42
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
una consulta mas el codigo anterior funciona pero el problema que igual se podrian meter al archivo que hace de upload
y no quiero que cualquier persona se pueda meter a ese archivo


tambien probe dejandolo con un archivo .htaccess

AuthUserFile /home/sites/www.micitio.com/users/Nombredeusuario/.passwd
AuthGroupFile /dev/null
AuthName "prueba" //esta linea no estoy muy seguro como es
AuthType Basic
<Limit GET POST>
require user Nombredeusuario
</Limit>

ya cree la cuenta de usuario

esa linea dice donde va a estar el acesso restringido??????
como tengo que dejarla

ademas lo que tengo pensado hacer es que la carpeta donde esta el script dejarla con esa restriccion
pero no donde va a dejar el archivo

en el script aparece esto

$path = "uploads/";

eso dice donde van a quedar los archivos
como puedo decirle que queden en una carpeta diferente dentro de mi citio
ejemplo
www.micitio.com/archivos/
y el script esta en
www.micitio.com/subir/

gracias por cualquier consulta

PD: perdonen mi nivel de php pero es casi basico o mejor dicho peor que basico jejejeje
  #4 (permalink)  
Antiguo 18/04/2003, 19:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Los "usuarios" que define lado2mx no tineen nada que ver con los usuarios del sistema operativo que son los que se refiere los que usas en tu .htaccess ..

Puedes usar la autentificación básica (o algo mas complejo si te metes con archivos de texto o BD) para los usuarios como te propone lado2mx .. Pero si quieres seguridad en tus archivos .. tan solo SUBELOS fuera de tu "Document root" (en un servicio de hosting suele ser el sitio/www ..) pon tus archivos fuera y quedaran incaccesibles desde http://www.talsitio.tal .. pues ya no será un directorio de tu "www".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 18/04/2003, 22:22
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
es que lo que quiero hacer es que solo personas que tengan el user y pass puedan ingresar al sistema de subir archivos

lo que pone funciona perfecto lado2mx si no me equivoco hace que lea un formulario ingresado por el usuario y si es el user y clave me muestre el contenido de upload.php pero igual si una persona pone upload.php en vez de index.php en la barra de direcciones podria entrar al sistema sin ningun problema

lo que estaba pensando era crear un archivo

.htaccess
en la carpeta donde esta el script para que con eso sea la autentificacion del usuario el problema es que cuando uno ponga el enlace al archivo en otra pagina le va a pedir el user y pass de nuevo y esto pasa para los directorios que estan mas arriva tambien de donde esta el archivo .htaccess

y lo que estaba pensando hacer era que en vez de que el script guarde en una carpeta del mismo directorio. Guarde el archivo que sube el usuario en una carpeta donde no haya un archivo .htaccess y hay no le pediria un user y un password para ver el archivo

$path = "uploads/";


ese es el path que viene con el codigo
como tengo que dejarlo para que me lo guarde en una carpeta mas abajo ?????

gracias por cualquier ayuda
  #6 (permalink)  
Antiguo 18/04/2003, 23:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
lo que pone funciona perfecto lado2mx si no me equivoco hace que lea un formulario ingresado por el usuario y si es el user y clave me muestre el contenido de upload.php pero igual si una persona pone upload.php en vez de index.php en la barra de direcciones podria entrar al sistema sin ningun problema
Pues .. no es así. Si te fijas en ese código .. se hace la comprovación de dichas variables de user/pass que ingreses por algun formulario .. SI no son correctos no podrá ejecutar el resto de lógica para la descarga del archivo.

Lo que no terminó de comentarte lado2mx que tanto el UPLOAD como el hecho de bajar ese archivo .. quien lo entrega es PHP y no un link directo tipo:

http://talsitio.tal/archivos/archivo.zip

Sino que es tu lógica la que (usando parte de lo que te puso lado2mx) hará por ejemplo un:

Código PHP:
header("content-type: MIME formato que le corresponda u otras cabeceras HTTP"); // Cabeceras HTTP para el navegador sepa q va un archivo adjunto para descargar ..
readfile("archivoruta/archivo.zip"); // lee el archivo y lo entrega al buffer de salida de PHP 
Y .. bueno .. así la descarga de un archivo se la pedirías así:

descargar_archivo.php?id=algo

donde id=algo .. sería algun indentificativo del archivo a descargar y en en ese script descargar_archivo.php tendrás tu lógica que valide al usuario .. por ejemplo Mostrandole el formulario de "Login" si no está ya autentificado por algun otro médio como cookies o sessiones ..

A todo esto .. Tus archivos como ya te dije .. los deberías tener FUERA de tu "DOCUMENT ROOT" para que no pueda accederlos poniendo en el URL algo tipo:
http://www.talsitio.tal/archivos/archivo.zip ... pues ya no estaría ahí .. ni en el raiz .. sino mas arraiba en la estructura de directorios ..

En resumen .. para evitarte los problemas de autentificación .. Lo que tienes que usar es COOKIES o SESSIONES para identificar a tu usuario y hacerle el seguimiento en todas las páginas de tu sistema de "UPLOAD" y "DOWNLOAD" que vas hacer .. Eso, sumado a la técnica del "download" en la que PHP es el que "entrega el archivo" como te mencioné ...


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 18/04/2003 a las 23:50
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 08:49.