Огранчение доступа к регистрации

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Alive_UA
phpBB 1.0.0
Сообщения: 3
Стаж: 18 лет 1 месяц

Огранчение доступа к регистрации

Сообщение Alive_UA »

Вообще, не уверен, что данный мод полезен, но все же, авось нет другого способа решить этот вопрос и он [вопрос] актуален?!!
Задача: ограничение доступа с определенных IP в форму регистрации пользователя.
Установка:

Код: Выделить всё

#
#-----[ OPEN ]------------------------------------------
#
ucp.php

#
#-----[ FIND ]------------------------------------------
#
		if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

#
#-----[ BEFORE, ADD ]-----------------------------------
#
    $allow_ips_mod = array('193.30.0.0/16', '192.168.0.0/16', '10.0.0.0/8');
    if ($allow_ips_mod)
    {
      $allow_ips_mod_ip = ip2long($_SERVER['REMOTE_ADDR']);
      $allow_ips_j = count($allow_ips_mod);
      for ($allow_ips_i = 0; $allow_ips_i <= $allow_ips_j; $allow_ips_i++)
      {
        if ($allow_ips_i == $allow_ips_j)
          redirect(append_sid("{$phpbb_root_path}index.$phpEx"));

        $allow_ip = explode('/',  $allow_ips_mod[$allow_ips_i]);
        if ($allow_ip[1] > 32 || $allow_ip[1] < 0)
          continue;
        $allow_ip[1] = 32 - $allow_ip[1];
        if ((ip2long($allow_ip[0]) >> $allow_ip[1]) == ($allow_ips_mod_ip >> $allow_ip[1]))
          break;
      }
    }
И теперь (как я понял) все, кто не входят в диапазоны подсетей из массива $allow_ips_mod, будут отправляться прямиком на главную страничку.
Этот "мод" требует понимания записи IP-адресов в формате CIDR и немного знаний о массивах PHP. Его можно легко переделать под ограничения доступа подобным образом на любую страницу (перенести в самое начало и добавить парсинг запрашиваемого URL`а).
Как внести в админку данный мод, я не знаю.
Буду рад, если кому-нть сие пригодится.
Аватара пользователя
toxi
phpBB 1.4.4
Сообщения: 131
Стаж: 19 лет 7 месяцев
Откуда: Житомир
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Огранчение доступа к регистрации

Сообщение toxi »

Почему-то не работает :(
Указываю только свой IP (192.168.0.197) и на регистраию не пускает, т. е. перекидывает на главную страничцу.

А для добавления поля в админку и соответственно вести запись IP из админки:
1. Открываем файл includes\acp\acp_board.php.
2. Находим строку:

Код: Выделить всё

'legend1'				=> 'ACP_SECURITY_SETTINGS',
3. После неё добавляем:

Код: Выделить всё

'access_reg_ip'                       	=> array('lang' => 'ACCESS_REG_IP'                     ,   'validate' => 'string',   	'type' => 'text:100:500',   'explain' => true),
4. Открываем файл language\Ваш_языковой_пакет\acp\board.php
5. Находим строку:

Код: Выделить всё

'REFERER_VALID_EXPLAIN'			=> '...Перевод для каждого языкового пакета свой...',
6. После неё добавляем:

Код: Выделить всё

'ACCESS_REG_IP'			=> '...Перевод для каждого языкового пакета свой...', // Введите адреса IP, которым разрешён доступ к регистрации
7. Открываем файл ucp.php
8. Находим строку:

Код: Выделить всё

$allow_ips_mod = array('193.30.0.0/16', '192.168.0.0/16', '10.0.0.0/8');
9. Заменяем её на:

Код: Выделить всё

$allow_ips_mod = array($config['access_reg_ip']);
10. Сохраняем все файлы и заходим в админку > Конфигурация сервера > Безопасность и вверху появилось у нас поле для ввода access ip адресов :)
Последний раз редактировалось toxi 23.05.2009 20:45, всего редактировалось 2 раза.
phpbb v3.3.4 рабочий | Support Toolkit (STK)
SvS
phpBB 1.4.3
Сообщения: 83
Стаж: 17 лет 5 месяцев
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Огранчение доступа к регистрации

Сообщение SvS »

Прекрасно работает, спасибо автору.
toxi писал(а):Указываю только свой IP (192.168.0.197)
Не тот, значит указываете. Где форум-то хостится?
Аватара пользователя
toxi
phpBB 1.4.4
Сообщения: 131
Стаж: 19 лет 7 месяцев
Откуда: Житомир
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Огранчение доступа к регистрации

Сообщение toxi »

SvS писал(а):Не тот, значит указываете. Где форум-то хостится?
8-) Сорри, нашёл ошибку. Форум находится на локалхосте, а я вместо того, чтобы указывать IP 127.0.0.1, указываю IP локальной сети :D
Всё работает и то дополнение моё (там где, чтобы IP брался из БД форума, а не редактировать каждый раз файл), тоже работает нормально. Только я проверял на одном IP. Незнаю, как будет работать, если указать несколько IP адресов, но думаю, что должно нормально работать. :)
phpbb v3.3.4 рабочий | Support Toolkit (STK)

Вернуться в «Бета-версии модов для phpBB 3.0.x»