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

Исключаем множественные сессии гостей


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

Есть проблема у всех версий ИПБ:

Боты парсеры контента ходят без куков и режут сессию в адресной строке так же, как это делают поисковые боты. Но в отличие от поисковых ботов, гости учитываются не по юзерагенту, а по айдишнику сессии. Поэтому происходит "размножение" гостей:

  1. Рутовый админ видит множество гостей с одинаковым айпишником;
  2. В статистике форума за последние 15 минут получается запредельно большое число гостей.

Побороть это удалось достаточно просто.

Рабочий код моей 1.3:

Найти:

	function create_guest_session() {
	global $DB, $INFO, $std, $ibforums;

	// Здесь много кода самой функции.
}

и привести к виду:

	function create_guest_session() {
	global $DB, $INFO, $std, $ibforums;

	$DB->query("SELECT id, ip_address, running_time FROM ibf_sessions WHERE ip_address='".$this->ip_address."' AND member_name = ''");
	if ( $DB->get_num_rows() )
	{
		$result = $DB->fetch_row();
		$this->session_id  = $result['id'];
		$this->last_click = $result['running_time'];
		$this->update_guest_session();
	}
	else
	{
		// Здесь много кода самой функции.
	}
}

 

Две выгоды такого решения:

  1. У меня реальная статистика посетителей, а не "дутые" цифры;
  2. Появилась возможность вести статистику нагрузки, создаваемой гостем (другой мой мод), и автоматически ботов-банить парсеров (ворователей контента) по "нечеловеческому" ритму листания страниц.

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

сорри, я ни разу не программист, знаю только что код 2.3 отличается от 1.х

вопрос - будет ли работать на 2.3 если я просто скопирую себе Ваш код? :о))

 

ага, и не написано где именно искать :о)

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

На 2.х и 3.х синтаксис другой; простым копированием не получится.

 

Сама идея очень проста: перед созданием новой гостевой сессии делается проверка, нет ли уже гостевых сессий с этого айпишника. Если есть такая сессия - не создаем новую, а апдейтим имеющуюся; если нет такой сессии - лишь тогда создаём новую.

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

А чего плохого? Даже если 2 разных гостя оказались с одного айпишника и попали в одну сессию - и что? Права-то у гостей одинаковые.

А в сессиях мемберов мы по айпишнику не апдейтим...

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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