Перейти к контенту

Блокировка регистрации с внешних IP.


Рекомендуемые сообщения

Здравствуйте, Я уже описывал данный вопрос в разделе безопасности, но возможно здесь искать ответ будет уместнее.

Есть локальная сеть и в ней есть локальный форум. Машина форумом имеет 2 сетевухи, одна "смотрит" в локалку с IP 192.168.х.х, вторая "смотрит" в инет. из инета форум доступен. Задача состоит в том, чтобы просматривать и заходить на форум под своими логами могли пользователи, зарегестрировавшиеся ТОЛЬКО в локальной сети. Регистрации извне не должно быть.

 

Приблизительно выглядеть это должно так:

 

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

 

2. Я, Леонид Горлохвотайка, пользователь локальной сети, регистрируюсь на форуме с компа, подключенного к этой локальной сети. Активно учавствую в разделах форума, но меня посылают на пол года в Урюпинск. Приезжая тута, я бегу в интернет кафе, захожу на форум, ввожу логин, пароль и создаю тему - какой классный город Урюпинск, но как жаль что я тут на пол года.

 

3. Я, Эльдар Алебардович, очень хороший друг Леонида Горлохватайка. И я бы хотел оставить несколько замечаний на форуме, но, к сожалению не могу зарегестрироваться (как и Вася Пупкин). Тогда я звоню Леониду и прошу завести для себя пользователя форума. Леня, (будучи в локальной сети и не уехав в Урюпинск), заводит пользователя и сообщает логин, пароль Эльдару. Таким образом на форуме появляется еще один пользователь, которому можно доверять, и который не будет заниматся ерундой.

 

Вроде как бы все учел. Огромная просьба помочь с данным вопросом. Возможно такой подход понадобится не только мне :D. Зарнее спасибо!

Ссылка на комментарий
Поделиться на других сайтах

/sources/action_public/register.php

 

Найти (несколько раз):

 

		if ( $this->ipsclass->vars['no_reg'] == 1 )
	{
		$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'reg_off' ) );
	}

 

Добавить ПОСЛЕ:

 

		if ( strpos($this->ipsclass->ip_address, '192.168.') !== 0 )
	{
		die('Регистрация с внешних IP запрещена!');
	}

 

Ну или такое:

 

		if ( strpos($this->ipsclass->ip_address, '192.168.') !== 0 )
	{
		$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'reg_off' ) );
	}

 

Будет стандартная ошибка "Регистрация отключена".

Изменено пользователем WildRAID
Ссылка на комментарий
Поделиться на других сайтах

Не-не-не, не сбивайте меня. :D

 

Всё ОК.

 

Если IP адрес НЕ начинается с "192.168." - всё остановить и показать ошибку.

Изменено пользователем WildRAID
Ссылка на комментарий
Поделиться на других сайтах

По идее.

 

=== false - такой подстроки нету

!== false - такая подстрока есть (в любой позиции)

 

=== 0 - такая подстрока есть + она в нулевой позиции

!== 0 - такой подстроки либо нет, либо она не в нулевой позиции

 

Если с false прописать, то пропустит IP адрес 198.192.168.86.

 

Позицию надо смотреть.

 

Либо я смертельно глючу уже. >__<

Ссылка на комментарий
Поделиться на других сайтах

Все очень красиво и аккуратно работает! Благодарность не имеет границ! Вот только возник вопрос,

Вписывал код:

if ( strpos($this->ipsclass->ip_address, '192.168.') !== 0 )
	{
		die('Регистрация с внешних IP запрещена!');
	}

Можно ли вместо надписи использовать HTML или ссылку на страничку? При открытии регистрации с внешних IP просто открывает делую страницу и надпись в левом верхнем углу. :D

Ссылка на комментарий
Поделиться на других сайтах

Впишите второй предложенный код.

 

Да, можно использовать HTML.

 

Можно даже сделать

die(file_get_contents('путь/к/файлу/со/страницей.html'));

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.