Назад | Перейти на главную страницу

фильтрация по IP и бан

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

Я хочу черный список.

Я использую Apache.

Кроме того, я хочу, чтобы черный список был специфичным для приложения.

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

Я бы использовал для этого отдельный брандмауэр. Где вы храните свой список IP-адресов, зависит от
- хотите ли вы черный список или белый список
- является ли этот список статическим или динамическим (хотя статичность имеет смысл только для белого списка)
- какой у вас веб-сервер (Apache, IIS, ...)

Пожалуйста, предоставьте немного больше информации.

С уважением, Фрэнк

Очень многое зависит от того, что именно вы хотите.

Для статического запрета некоторых особенно оскорбительных / 16 подсетей проще всего установить правило брандмауэра. Я бы рекомендовал Shorewall для этого, поскольку он намного удобнее, чем исходный материал. Внесение 4–5 подсетей в черный список волшебным образом снижает уровень шума на 99%, это потрясающе.

Для динамического запрета скриптовых детей, просто установив fail2ban это рабочее решение, требующее очень небольшой работы.

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

Если вам не нравится иметь дело с брандмауэром, потому что это кажется вам вуду, вы все равно можете ОТКАЗАТЬСЯ в файле .htaccess. Это будет работать «одинаково» для ваших php-страниц, но будет гораздо менее эффективным и не помешает кому-то попытаться использовать, например, ваш SSH.