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
  • 2426 Vistas

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

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5401
  • Actividad:
    40%
  • 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: 7750
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2236
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1651
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3027
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3488
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon