[easyBlacklist] Очень простой чёрный список IP
Для заказчика необходим был чёрный список IP-адресов. И чтобы для заблокированных IP сайт был полностью недоступен. Единственный компонент для MODx, который мне удалось найти, это Rampart, но он требует дополнительно поставить компонент Login и прочие вытекающие. А хотелось независимый от каких-либо компонентов чёрный список.
Поэтому написал свой компонент для блокирования пользователей по IP без привязки к каким-либо компонентам.
Пока обработка события блокировки очень простая. Если пользователь заблокирован, то ему выдаётся пустая страница с единственной надписью «Error 404!». Такова была просьба заказчика.
Компонент написан на скорую руку, поэтому у меня сомнения в том, стоит ли его выкладывать в репозиторий. Исходный код с возможностью автоматической сборки (_build/build.transport.php) доступен на GitHub или можно сразу скачать установочный пакет.
Скачать компонент из магазина: modstore.pro/packages/users/easyblacklist
Исходный код: github.com/dobroweb/easyBlacklist
Будет ли развитие компонента не знаю. Возможно кто-то захочет помочь в развитии компонента или некоторые исправления/добавления в GitHub отправит. Я с радостью их рассмотрю. И буду сам стараться доводить его до ума.
Нужно ли выложить компонент в репозитории?
P.S. Определение путей в _build при сборке немного переписано для моего удобства. Если у вас при сборке возникнут ошибки, пожалуйста, сообщите их в комментариях.
Поэтому написал свой компонент для блокирования пользователей по IP без привязки к каким-либо компонентам.
Пока обработка события блокировки очень простая. Если пользователь заблокирован, то ему выдаётся пустая страница с единственной надписью «Error 404!». Такова была просьба заказчика.
Компонент написан на скорую руку, поэтому у меня сомнения в том, стоит ли его выкладывать в репозиторий. Исходный код с возможностью автоматической сборки (_build/build.transport.php) доступен на GitHub или можно сразу скачать установочный пакет.
Скачать компонент из магазина: modstore.pro/packages/users/easyblacklist
Исходный код: github.com/dobroweb/easyBlacklist
Будет ли развитие компонента не знаю. Возможно кто-то захочет помочь в развитии компонента или некоторые исправления/добавления в GitHub отправит. Я с радостью их рассмотрю. И буду сам стараться доводить его до ума.
Нужно ли выложить компонент в репозитории?
P.S. Определение путей в _build при сборке немного переписано для моего удобства. Если у вас при сборке возникнут ошибки, пожалуйста, сообщите их в комментариях.
Поблагодарить автора
Отправить деньги
Комментарии: 22
1. Было бы здорово причину блокировки выводить и пользователю, а не только в админке. Тогда понимаешь, почему тебя заблокировали и не поднимаешь панику.
2. Возможно одноразовый запрос со стороны заблокированного пользователя (с причиной и контактами) о восстановлении. Информация о запросах чтобы выводились в второй вкладке для возможной разблокировки или полного бана.
3. Если бы в соседней вкладке плагин собирал ip-адреса последних посетителей сайта, с возможностью их блокировать сразу кнопочкой.
4. Стоит потрудится и причесать пакет и документацию для репозитория! Думаю, он пригодится многим!
2. Возможно одноразовый запрос со стороны заблокированного пользователя (с причиной и контактами) о восстановлении. Информация о запросах чтобы выводились в второй вкладке для возможной разблокировки или полного бана.
3. Если бы в соседней вкладке плагин собирал ip-адреса последних посетителей сайта, с возможностью их блокировать сразу кнопочкой.
4. Стоит потрудится и причесать пакет и документацию для репозитория! Думаю, он пригодится многим!
Думаю, он пригодится многим!но динамический ip, проксеры и торы… я не понимать. Если уж ограничивать доступ к содержимому, то это нужно делать через регистрацию и её подтверждение админом, а так фиговый лист какой-то
Для злонамеренных злоумышленников нужен отдельный разговор…
Обычный же человек, попав под бан — задумается и даже если и поменяет ip то уже будет осторожным, чтобы не попасть повторно под бан. Для этой же цели я и предлагаю ввести одноразовый запрос на удаление себя из чёрного списка.
Обычный же человек, попав под бан — задумается и даже если и поменяет ip то уже будет осторожным, чтобы не попасть повторно под бан. Для этой же цели я и предлагаю ввести одноразовый запрос на удаление себя из чёрного списка.
Если уж ограничивать доступ к содержимому, то это нужно делать через регистрациюТут речь не только о содержимом, а о всём сайте. Для содержимого есть отдельные дополнения.
Вы про какой-то очень специфичный тип сайта говорите, видимо.
Как человек может попасть в немилость? Спам в комментарии (любую форму или что-то похожее), а если это спам то человек уже не необычный. Мне кажется в задаче было: «Я хочу заблокировать конкурентов по ip». Серьезно, не могу представить ситуацию где поможет компонент. Только если для роспотребнадзора банить российский регион, но компонент как я понимаю может только определенные ip.
Не одобренному пользователю можно не показывать как что-то отдельное так и весь сайт.
Как человек может попасть в немилость? Спам в комментарии (любую форму или что-то похожее), а если это спам то человек уже не необычный. Мне кажется в задаче было: «Я хочу заблокировать конкурентов по ip». Серьезно, не могу представить ситуацию где поможет компонент. Только если для роспотребнадзора банить российский регион, но компонент как я понимаю может только определенные ip.
Не одобренному пользователю можно не показывать как что-то отдельное так и весь сайт.
Возможно вы и правы… Это мои мысли были.
Только если для роспотребнадзора банить российский регион=)))
а чего в modstore не выложишь?
Нет документации и код немного надо подправить. Сделать, чтобы при блокировке либо на страницу отсылал, либо шаблон подгружал. В общем, сделать красиво. А потом можно.
ещё интересна блокировка по refferer, если не запилите, пришлю PR
PR — это хорошо. Присылайте, я этому буду только рад :)
пакет удалили? приложение простое и полезное, как раз понадобилось.
придется собирать вручную)
придется собирать вручную)
спасибо)
Компонент никакой привязки к miniShop2 не имеет. Просто я забыл в инсталяторе удалить требование, чтобы miniShop2 был установлен. Исправлю этот момент
Исправил. Попробуйте теперь установить компонент.
Спасибо, возможно воспользуюсь компонентом в другом проекте, а пока старым проверенным методом, через .htaccess заблочил IP.
Добрый день, Сергей.
В журнале ошибок:
В журнале ошибок:
(ERROR @ /var/www/xxx/data/www/site.ru/core/components/easyblacklist/lexicon/ru/settings.inc.php : 3) PHP warning: include(settings.php): failed to open stream: Нет такого файла или каталога
Что скажете?
Добрый день.
Зачем-то пытается подключиться какой-то файл. Надо убрать эту строчку из файла. Я исправлю и выложу обновление.
Зачем-то пытается подключиться какой-то файл. Надо убрать эту строчку из файла. Я исправлю и выложу обновление.
Установил новую версию, после обновления при попытке зайти в меню пишет:
Could not find action file at: controllers/default/index.php
И пустое приложение,
Could not find action file at: controllers/default/index.php
И пустое приложение,
Я не смог воспроизвести ошибку, к сожалению. Пробовал и обновить, и переустановить. Но всегда всё нормально открывается.
Здравствуйте!
Работает только с единичными адресами? Маски, подсети?
Работает только с единичными адресами? Маски, подсети?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.