[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 при сборке немного переписано для моего удобства. Если у вас при сборке возникнут ошибки, пожалуйста, сообщите их в комментариях.
Сергей Фещуков
14 мая 2015, 07:17
modx.pro
1
3 908
+4

Комментарии: 21

Василий Столейков
14 мая 2015, 10:47
+1
1. Было бы здорово причину блокировки выводить и пользователю, а не только в админке. Тогда понимаешь, почему тебя заблокировали и не поднимаешь панику.
2. Возможно одноразовый запрос со стороны заблокированного пользователя (с причиной и контактами) о восстановлении. Информация о запросах чтобы выводились в второй вкладке для возможной разблокировки или полного бана.
3. Если бы в соседней вкладке плагин собирал ip-адреса последних посетителей сайта, с возможностью их блокировать сразу кнопочкой.
4. Стоит потрудится и причесать пакет и документацию для репозитория! Думаю, он пригодится многим!
    Виктор
    14 мая 2015, 11:06
    0
    Думаю, он пригодится многим!
    но динамический ip, проксеры и торы… я не понимать. Если уж ограничивать доступ к содержимому, то это нужно делать через регистрацию и её подтверждение админом, а так фиговый лист какой-то
      Василий Столейков
      14 мая 2015, 11:14
      0
      Для злонамеренных злоумышленников нужен отдельный разговор…
      Обычный же человек, попав под бан — задумается и даже если и поменяет ip то уже будет осторожным, чтобы не попасть повторно под бан. Для этой же цели я и предлагаю ввести одноразовый запрос на удаление себя из чёрного списка.
        Василий Столейков
        14 мая 2015, 11:15
        0
        Если уж ограничивать доступ к содержимому, то это нужно делать через регистрацию
        Тут речь не только о содержимом, а о всём сайте. Для содержимого есть отдельные дополнения.
          Виктор
          14 мая 2015, 11:22
          0
          Вы про какой-то очень специфичный тип сайта говорите, видимо.
          Как человек может попасть в немилость? Спам в комментарии (любую форму или что-то похожее), а если это спам то человек уже не необычный. Мне кажется в задаче было: «Я хочу заблокировать конкурентов по ip». Серьезно, не могу представить ситуацию где поможет компонент. Только если для роспотребнадзора банить российский регион, но компонент как я понимаю может только определенные ip.
          Не одобренному пользователю можно не показывать как что-то отдельное так и весь сайт.
            Василий Столейков
            14 мая 2015, 11:25
            0
            Возможно вы и правы… Это мои мысли были.
            Только если для роспотребнадзора банить российский регион
            =)))
      Сергей Скат
      14 мая 2015, 14:06
      0
      а чего в modstore не выложишь?
        Сергей Фещуков
        14 мая 2015, 14:31
        0
        Нет документации и код немного надо подправить. Сделать, чтобы при блокировке либо на страницу отсылал, либо шаблон подгружал. В общем, сделать красиво. А потом можно.
        Ivan Shvindin
        14 мая 2015, 14:27
        +1
        ещё интересна блокировка по refferer, если не запилите, пришлю PR
          Сергей Фещуков
          14 мая 2015, 14:30
          0
          PR — это хорошо. Присылайте, я этому буду только рад :)
          Рустам С
          23 марта 2016, 20:45
          0
          пакет удалили? приложение простое и полезное, как раз понадобилось.
          придется собирать вручную)
          Николай Пиневич
          30 мая 2017, 14:40
          0
          Жаль что компонент как-то привязан к minishop2… Из-за этого не установил, а так хорошая идея.
            Сергей Фещуков
            02 июня 2017, 13:30
            0
            Компонент никакой привязки к miniShop2 не имеет. Просто я забыл в инсталяторе удалить требование, чтобы miniShop2 был установлен. Исправлю этот момент
              Сергей Фещуков
              02 июня 2017, 14:06
              0
              Исправил. Попробуйте теперь установить компонент.
                Николай Пиневич
                03 июня 2017, 12:49
                0
                Спасибо, возможно воспользуюсь компонентом в другом проекте, а пока старым проверенным методом, через .htaccess заблочил IP.
              Андрей
              13 сентября 2017, 13:33
              0
              Добрый день, Сергей.
              В журнале ошибок:

              (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: Нет такого файла или каталога
              Что скажете?
                Сергей Фещуков
                15 сентября 2017, 13:52
                0
                Добрый день.
                Зачем-то пытается подключиться какой-то файл. Надо убрать эту строчку из файла. Я исправлю и выложу обновление.
                Евгений Корчмарек
                24 сентября 2018, 00:59
                0
                Установил новую версию, после обновления при попытке зайти в меню пишет:

                Could not find action file at: controllers/default/index.php

                И пустое приложение,
                  Сергей Фещуков
                  02 октября 2018, 15:17
                  0
                  Я не смог воспроизвести ошибку, к сожалению. Пробовал и обновить, и переустановить. Но всегда всё нормально открывается.
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  21