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

Есть ли такой мод?


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

Хотелось бы или скачать или написать мод, который записывает в простой текстовый файл на серваке о всех заходах админов, супермодеров, модеров на форум: в какое время, под каким IP, в скрытом режиме это делалось или нет. Это был бы очень полезный мод, т.к имея такую информацию обо всех, можно почти на 100% сказать, хакнуты админские и модерские аккаунты или нет. Есть ли такой мод? Если нету, то сложно ли его написать?
Ссылка на комментарий
Поделиться на других сайтах

Напиши, это не сложно.

Только лучше уж, наверное, в базу данных писать, а не в файлик. Все-таки удобнее.

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

Вы не могли бы подсказать, где именно IPB держит информацию о текущем состоянии админского акка: его текущий IP, его скрытность, время последнего входа? Я просто никогда модов сам не писал, IPB вот так по косточкам, что делает тот или иной скрипт, тоже не знаю. Вы не могли бы подсказать, от чего тут надо плясать?

Только лучше уж, наверное, в базу данных писать, а не в файлик. Все-таки удобнее.

Именно в этом и фишка, что будет писаться в файл, который ВНЕ форума будет лежать. Его имя и путь в этом случае буду знать только я один. И если, предположим, хакнут админские аккаунты, то они ни за что не догадаются, что за ними ведется тотальное наблюдение. Если только не читают этот форум. :D Но если даже и читают, то все равно не смогут узнать, в какой именно файл ведется запись.

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

Данные о админских сессиях (т.е. присутствии пользователя с правами админа в форумной админ-панели) хранятся в ibf_admin_session. Присутствие любого пользователя на форуме — в таблице ibf_sessions.

 

Если логировать все действия пользователей на форуме — это мама моя какая нагрузка получится...

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

Присутствие любого пользователя на форуме — в таблице ibf_sessions.

А можно выдрать оттуда только про присутствие юзеров №1 и №2? Чтобы только по ним велся лог. Потому что это и есть админы.

Если логировать все действия пользователей на форуме — это мама моя какая нагрузка получится...

Ну дык я это понимаю. И лог будет будь здоров, попробуй разберись... Да и не нужно вести лог про всех юзеров. Достаточно только по двум админам и еще желательно бы по одному модеру.

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

А как тогда? Где IPB хранит информацию о заходе юзера? Чтобы как только зашел, сразу сработал бы скрипт и этот заход прописался бы в логе. И не для каждого юзера, а для юзеров только с определенными ID.
Ссылка на комментарий
Поделиться на других сайтах

Зачем вам информация о заходе пользователя?

Нужно как раз запустить скрипт в нужный момент. Этот момент, я думаю, находится в login_core.php. Там же и группу проверить можно, если что.

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

Зачем вам информация о заходе пользователя?

Еще раз объясняю:

1. Пользователь заходит на форум.

2. В момент аутентификации выполняется какой-то родной IPBшный скрипт (это как autoexec.bat в DOS'е, если кто помнит), судя по вашим словам login_core.php. Я хочу его дополнить следующим скриптом:

1. Если юзер является админом, то необходимо сбросить про него в текстовый файл информацию про его IP, в какое время он зашел и в каком режиме: в инвизе или нет.

2. Если данный юзер админом не является, этот скрипт ничего про него не выводит.

Вот примерный алгоритм. Если нельзя определить принадлежность его к админской группе, то на худой конец просто по его ID. Админами у нас являются пользователь №1 и пользователь №2.

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

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

В общем, один мой друг, который в знании PHP примерно равен разработчикам IPB, сделал мне этот мод за полчаса. Я бы так не смог. Да и вообще, он оказался сложнее, чем я предполагал. Ему влом выкладывать его на ИБР, а я все же считаю его полезным, может быть еще кому-нибудь пригодится. Так что с его разрешения я выкладываю его здесь от его имени.

 

sources/classes/class_session.php

Найти:

				//-----------------------------------------
			// Fix up the last visit/activity times.
			//-----------------------------------------

			$this->ipsclass->input['last_visit']	= $this->member['last_activity'];
			$this->ipsclass->input['last_activity'] = $this->time_now;
		}

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

if ($this->member['mgroup'] == $this->ipsclass->vars['admin_group']) {
			$log_name = ROOT_PATH.'access_log.txt';

			$ex = file_exists($log_name) ? 1 : 0;
			list( $be_anon, $loggedin ) = explode( '&', $this->member['login_anonymous'] );
			$file = fopen($log_name, 'a');
			$anon = $be_anon ? 'Скрыт' : 'Виден';
			if (!$ex) {
				fwrite($file, str_repeat('-', 71)."\r\n");
				fwrite($file, sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", 'Дата', 'IP', 'Ник', 'Статус'));
				fwrite($file, str_repeat('-', 71)."\r\n");
			}
			$str = sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", date('d.m.y - H:i'), $this->ipsclass->ip_address, $this->member['members_display_name'], $anon);
			fwrite($file, $str);
			fclose($file);
		}

 

sources/action_public/login.php

Найти:

		//-----------------------------------------
	// Clear out any passy change stuff
	//-----------------------------------------

	$this->ipsclass->DB->simple_construct( array( 'delete' => 'validating',
												  'where'  => "member_id={$this->ipsclass->member['id']} AND lost_pass=1"
										 )	  );

	$this->ipsclass->DB->simple_shutdown_exec();

 

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

if ($member['mgroup'] == $this->ipsclass->vars['admin_group']) {
			$log_name = ROOT_PATH.'access_log.txt';

			$ex = file_exists($log_name) ? 1 : 0;
			$be_anon = intval($this->ipsclass->input['Privacy']);
			$file = fopen($log_name, 'a');
			$anon = $be_anon ? 'Скрыт' : 'Виден';
			if (!$ex) {
				fwrite($file, str_repeat('-', 71)."\r\n");
				fwrite($file, sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", 'Дата', 'IP', 'Ник', 'Статус'));
				fwrite($file, str_repeat('-', 71)."\r\n");
			}
			$str = sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", date('d.m.y - H:i'), $this->ipsclass->ip_address, $member['members_display_name'], $anon);
			fwrite($file, $str);
			fclose($file);		
	}

 

Все заходы админов, а вернее, их сессии, отмечаются в файле access_log.txt, который автоматически создается этим модом в той папке, в которую вы поставили форум. А я иду изучать PHP и искать в интернете какой-нибудь мануал, в котором объясняется, как функционирует IPB вплоть до последнего скрипта, до последней процедуры...

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

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

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

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

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

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

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

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

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

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

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

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