comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Limitar descargas por usuario

  • 3 Respuestas
  • 2363 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5380
  • Actividad:
    76.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Abril 20, 2013, 11:16:35 am »
Hola a todos. Queria saber si alguno sabe como puedo limitar las descargas por usuarios en un website.
Por ejemplo. Subo una carpeta llena de PDF, pero no quiero que los usuarios descarguen mas de a 2 por vez...
Como limitaria eso?

Saludos!
ANTRAX
« Última modificación: Octubre 25, 2013, 11:12:32 pm por Expermicid »


Desconectado |şSɘŬ

  • *
  • Underc0der
  • Mensajes: 15
  • Actividad:
    0%
  • Reputación 0
  • Knowledge is power
    • Ver Perfil
    • Mi Blog
« Respuesta #1 en: Abril 20, 2013, 02:26:16 pm »
Podemos hacer un filtro por ip o por cookie tipo session. Por cookie es fácil traspasarlo, solo necesito borrar la cookie y listo, puedo descargar lo que quiera (aun que es la manera mas rápida). La otra forma seria tener una tabla en una base de datos con las ips, la fecha de su ultima descarga y la cantidad de veces descargada (entre 1 y 2 solamente prácticamente).

Base de datos: Tabla: "IPs"
[ip : string]
[fecha_ultima_descarga : datetime]
 [cantidad:int (auto increment?)]

No es muy complejo hacerlo en PHP.  Tenemos los archivos a descargar en una carpeta que no se puede acceder desde la web y cuando alguien quiere descargar cierto archivo vamos a la tabla, buscamos su ip si existe, (sino la agregamos), vemos si la fecha del ultimo archivo que descargo y si no es hoy, volvemos el valor de "cantidad a 0", luego si "cantidad" es mayor o igual a 2 no podemos descargar, de lo contrario agregamos cantidad = cantidad + 1.
Archivos:
descarga.php <-- Archivo que lista y fuerza la descarga de los dentro de carpeta
carpeta/ :  <-- Bloqueada por htaccess
                 - archivo1.pdf
                 - archivo2.pdf
                 - archivo3.pdf

Claro que uno puede cambiarse la ip... pero contra eso no existe mucho que hacer ..


No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado s00rk

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Abril 22, 2013, 09:55:37 pm »
Si tienes un sistema de usuarios que deben loguear para descargar lo que se me ocurre es que cuando logueen chequen la fecha actual de su ultimo login, y si su ultimo login es diferente a la fecha actual reseteamos su cantidad en 0 y actualizamos la fecha a la actual.

Y a la hora de descargar checamos su cantidad si es menor a 2 le descarga el archivo y le aumenta la cantidad en 1, y ya.

Se me habian ocurrido otras formas usando localstorage, pero igual era facil hacer bypass al igual que hacer uso de IPs que se pueden cambiar o en uso de localstorage limpiar los datos del navegador ... hehehe, pero ya por usuario supongo que seria lo mas eficiente, o asi lo veo yo hehehe

Desconectado WHK

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 3
  • 吴阿卡
    • Ver Perfil
    • WHK
« Respuesta #3 en: Abril 24, 2013, 10:47:33 am »
Tal como dice isseu la unica forma de limitar las descargas por usuario sería primero utilizando la sesión de usuario y no hay otra que usando la misma base de datos de esa sesión, por ejemplo php.

Desde mod_rewrite puedes crear una regla donde todas las peticiones por ejemplo a descargas/*.pdf se redireccionen de forma interna (como si se tratase de un permalink) hacia ese php y desde ahi controlar la sesión y dar el archivo en trocitos de 2kb para no hacer uso excesivo de la memoria ram.

La desventaja es que si descargas algo que demore por ejemplo 3 minutos en bajar entonces tendrás un proceso tomado durante ese tiempo, si hay 50 personas bajando un archivo entonces tendrás 50 procesos activos y puede que apache te de un error 500 al sobrepasar la cantidad maxima de procesos hijo de php.

Dale una vuelta a eso porque de otra forma tendrias que compilar algún mod para apache y no creo que te des ese trabajo.

Saludos.

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 6260
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1535
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2127
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2672
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 2884
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made