Ограничить ежедневный доступ - PullRequest
1 голос
/ 20 марта 2011

Я хотел бы реализовать функцию на своем веб-сайте, которая ограничивает доступ к определенной странице.

Это должно разрешить 2 доступа в день на IP.

Я думал о созданииMySQL таблица и написать в ip + раз ip посетил веб-сайт, а затем создать задание cron, которое удаляет все записи каждые 24 часа.

Но я беспокоюсь, что это может вызвать слишком большую нагрузку на сервер (в случаеполучить несколько сотен визитов в день).Есть ли лучший или более простой способ ограничить ежедневный доступ двумя IP-адресами?

Я также думал об использовании файлов cookie или сеансов, но у меня есть 0 планов относительно того, как создать файл cookie, который будет выполнятьработа мне нужна ....

Я благодарен за любые предложения!

РЕДАКТИРОВАТЬ:

Еще две вещи, о которых мне понадобится совет, после полезных комментариев:

- будет ли достаточно сценария обнаружения публичного прокси, чтобы не пропустить хотя бы анонимных и веб-прокси?

- возможно ли ограничить доступ для каждого IP-адреса отдельно и создать сценарий, которыйудалит записи по IP ровно через 24 часа после первого посещения?Вместо того, чтобы задание cron удаляло все данные каждые 24 часа независимо от времени, когда посетитель впервые зашел на мой сайт?

Ответы [ 2 ]

2 голосов
/ 20 марта 2011

Сеансы и / или файлы cookie не являются наиболее безопасным решением:

  • Сеансы истекают через некоторое время (обычно что-то около получаса, с настройками по умолчанию)
  • Cookies могут быть удалены пользователем; или он может сменить браузер


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


Но учтите, что у вас может быть несколько пользователей, использующих один и тот же IP-адрес, например, все люди в одной компании часто используют один и тот же IP-адрес.

2 голосов
/ 20 марта 2011

Хорошо сохранить ip, время и количество обращений к базе данных, несколько сотен строк не проблема для базы данных mysql (не забудьте установить индексы для таблицы).

Но обратите вниманиечто у пользователей с общим IP-адресом могут возникнуть проблемы с доступом к вашей странице.

Использование файлов cookie проблематично, поскольку пользователь может контролировать это, а вы не можете это ограничивать.Конечно, от вашего приложения зависит, насколько важно заблокировать доступ пользователя к aftex n .

...