Модуль собирает в таблицу IP-адреса, с которых была не верно введена капча.
В комментарий вписывается дата/время/ссылка(реферер).
Затем в админке можно изучить этот список и для некоторых адресов (или масок) настроить отдачу Error-404 при заходе с этого адреса.
Маска строится про правилам LIKE в SQL-запросе, т.е. % это любое количество символов, а _ (подчерк) это один символ.
Например, под маску 192.168.0.% попадут все адреса сети 192.168.0.0/24.
Делать полноценные маски в формате CIDR (192.168.0.0/24) я не стал (поленился, да и такой вариант работает быстрее).
Так что вместо 185.105.88.0/23 придется сделать две записи - 185.105.88.% и 185.105.89.%
PS. Реакцию на "провинившийся IP" можно сделать какую угодно. Обработка находится в файле 0blacklist.php.
Также никто не мешает добавлять IP-адреса и сети самостоятельно, а в качестве обработки генерить include для .htaccess.
blacklist.jpg 160.37К 12 Количество загрузок:
Установка:
----------
1. копируем файлы
0blacklist.php -> core/includes/
addon.php -> core/includes/admin/
modules_blacklist.php -> core/includes/admin/sub/
modules_blacklist.tpl.html -> core/tpl/admin/
Файл addon.php нужен ОДИН РАЗ для создания настроек и SQL-таблицы.
После первого же захода в админку его можно удалить, если он не удалился сам.
2. в файле default.tpl.html перед строкой
<div class="marg"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=yandex">{$smarty.const.ADMIN_STRING_YANDEX}</a></div>
вставляем
{* BEGIN blacklist *}
<div class="marg"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=blacklist">Blacklist</a></div>
{* END blacklist *}
3. в файле core/tpl/admin/menu.tpl.html перед строкой
<table class="adn topj"><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=yandex">{$smarty.const.ADMIN_STRING_YANDEX}</a></td></tr></table>
вставляем
{* BEGIN blacklist *}
<table class="adn topj"><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&sub=blacklist">Blacklist</a></td></tr></table>
{* END blacklist *}
4. в файле core/includes/admin/modules.php перед строкой
array("id"=>"yandex", "name"=>"Яндекс.Маркет" )
вставляем
# BEGIN blacklist
array("id"=>"blacklist", "name"=>"Blacklist"),
# END blacklist
5. в файле feedback.php
перед
unset($_SESSION['captcha_keystring']);
вставляем
# BEGIN blacklist
if(CONF_BLACKLIST_ENABLE_COLLECT && $error_f == 2)
db_query("INSERT INTO ".DB_PRFX."blacklist SET enable=0, address='".$_SERVER[CONF_BLACKLIST_ELEM_NAME]."', comment='".date('Y-m-d|H:i|').$_SERVER['HTTP_REFERER']."'");
# END blacklist
6. в файлах product_detailed.php, product_discussion.php
перед
unset($_SESSION['captcha_keystring']);
вставляем
# BEGIN blacklist
if(CONF_BLACKLIST_ENABLE_COLLECT && $error_p == 7)
db_query("INSERT INTO ".DB_PRFX."blacklist SET enable=0, address='".$_SERVER[CONF_BLACKLIST_ELEM_NAME]."', comment='".date('Y-m-d|H:i|').$_SERVER['HTTP_REFERER']."'");
# END blacklist
7. аналогичным образом можно добавить и в другие места, где используется капча (register.php, register_quick.php)
------------------
После всего этого в админке в разделе "Модули" появится новый модуль "Blacklist".
Уровень доступа к этому модулю "Общие настройки" (это для тех, у кого кроме админов с полным доступом и клиентов есть еще пользователи с разными уровнями доступа в админке).