Как отключить загрузку в течение срока - PullRequest
3 голосов
/ 19 января 2011

Как я могу не дать клиенту загружать больше после загрузки чего-либо в течение определенного времени? На основе IP-адреса.

Ответы [ 3 ]

3 голосов
/ 19 января 2011

Основание вашего отключения на IP-адресе пользователя неэффективно. В дополнение к тому, что сказал Кел, клиент также может иметь динамический IP или использовать Tor.

Действительно, единственный способ - заставить пользователя как-то себя идентифицировать. Существует множество вариантов: Facebook, OpenID, Twitter и т. Д. Вы можете создать систему учетных записей для своего сайта, но это будет гораздо более неудобно для пользователя; лучше использовать уже существующую инфраструктуру.

Что касается более технической стороны вещей, в основном вы будете хранить таблицу базы данных пользователей, которые загрузили файлы, и столбец отметки времени, который содержит время, которое они загрузили. Вы будете регулярно просматривать эту таблицу с помощью задания Cron и удалять пользователей старше заданного порога.

Когда человек пытается загрузить файл, проверьте, есть ли он в базе данных. Если они есть, они не могут загрузить; если нет, то они хороши.

2 голосов
/ 19 января 2011

Вы можете получить IP-адрес, используя переменные $ _SERVER ['REMOTE_ADDR'] и $ _SERVER ['HTTP_X_FORWARDED_FOR'], и сохранить его где-нибудь вместе с датой запроса (например, в базе данных).При каждом запросе на загрузку вы можете проверить, является ли (время последней загрузки с этого IP) - (текущее время)> периодом.

Кстати, пользователь не всегда привязан к одному IP, и один IP может использоваться многимипользователи.Так, например, это ограничит загрузку от пользователей, которые скрыты за тем же NAT.

0 голосов
/ 20 января 2011

Я полагаю, что нет полного способа доказательства, и для любого предложения есть контраргумент.

Но опять же, веб-сайты по-прежнему позволяют загружать и жить.

Вы можете комбинировать различные методы идентификации пользователя:

  1. Обычное печенье

  2. Flash cookie

  3. IP-адрес

Все это можно преодолеть, но не все даже знают о флеш-куки, и некоторые люди все еще меняют свой IP, включая / выключая модем. Никогда не стоит недооценивать людей лень / невежество :) 1021 *

...