Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[DEV] AntiSpider

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

[DEV] AntiSpider

Сообщение Егор Наклоняев »

Борьба с пауками.
1. Создаём фаил mln.php в каталоге форума (лучше названия менять, ибо враг не дремлет)

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

<?php
/***************************************************************************
 *                                mln.php
 *                            -------------------
 *   copyright            : (C) 2005 Egor Naklonyaeff
 *
 *   $Id: mln.php,v 1.0.2 2005/02/17 17:14:00 chyduskam Exp $
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
$sql = "SELECT ban_ip
			FROM " . BANLIST_TABLE . "
			WHERE ban_ip = '$user_ip'";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Shit happens");
	}
	if ($db->sql_fetchrow($result))
	{
		message_die(GENERAL_ERROR, "Shit happens");
	}

$sql = "INSERT INTO " . BANLIST_TABLE . " (ban_ip)
				VALUES ('" . $user_ip . "')";
if ( !$db->sql_query($sql) )
	{
	message_die(GENERAL_ERROR, "Couldn't insert ban_ip info into database", "", __LINE__, __FILE__, $sql);
	}
$sql = "DELETE FROM " . SESSIONS_TABLE . "
			WHERE session_ip ='$user_ip'";
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Shit happens");
	}
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
         $emailer = new emailer($board_config['smtp_delivery']);

         $emailer->from($board_config['board_email']);
         $emailer->replyto($board_config['board_email']);

         $emailer->use_template('spider', $board_config['default_lang']);
         $emailer->email_address($board_config['board_email']);
         $emailer->set_subject('Spiderman must die');

         $emailer->assign_vars(array(
            'SITENAME' => $board_config['sitename'],
            'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '',
            'AGENT'=>$_SERVER["HTTP_USER_AGENT"],
            'USERNAME' => $userdata['username'],
            'IP' => str_replace('255', '*', decode_ip($user_ip))));

         $emailer->send();
         $emailer->reset();
message_die (GENERAL_MESSAGE,"Sic transit gloria mundi");
?>
2. Запрещаем его индексировать в robots.txt, чтобы поисковики не убить
3. Создаем шаблон spider.tpl в папке language/lang_russian/email/

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

Subject: Попытка скачать сайт {SITENAME}
Charset: windows-1251

На {SITENAME} была зафиксирована попытка скачать сайт:

Username: {USERNAME}
IP: {IP}
User agent: {AGENT}

{EMAIL_SIG}
4. Ставим в шаблоне overall_header.tpl ссылку вида <a href="mln.php"></a>

Проверил. Вроде - работает.
Последний раз редактировалось Егор Наклоняев 17.02.2005 17:18, всего редактировалось 1 раз.
Аватара пользователя
Димка
phpBB 1.4.1
Сообщения: 40
Стаж: 19 лет 2 месяца

Сообщение Димка »

Можно поподробнее, что сие даёт? :roll:

Добавлено спустя 2 минуты 1 секунду:

2. Где должен лежать и как выглядит robots.txt (ламер я)
3.
Ставим в шаблоне overall_header.tpl ссылку вида <a href="mln.php"></a>
просто пустую ссылку и куда конкретно?
Версия моего форума - 2.0.15
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Можно поподробнее, что сие даёт?
Человек или робот, пытающийся скачать то, что скачивать нельзя, автоматически сам себя забанит
2. Где должен лежать и как выглядит robots.txt (ламер я)
http://www.yandex.ru/info/webmaster2.html

просто пустую ссылку и куда конкретно?
Именно пустую. Можно, конечно, поставить ссылку сида "Нажми меня" и забанить всех посетителей, но лучше этого не делать.
А место - любое. На Ваш вкус.

P.S. Я вот репу почесал - не хватает писем Админу в коде для полного счастья. Мол приходил такой-то сякой-то с таким-то User Agent и такого-то IP за что и был упромыслен. Надо будет доделать.

Добавлено спустя 58 минут 48 секунд:

Кстати, глянул: ночью одного деятеля уже забанил, оказывается.

Добавлено спустя 3 часа 9 минут 19 секунд:

Нагло стащил у Xpert кусок кода и вставил в программу. Теперь ещё и письма пишет.
Splurov
phpBB 1.4.4
Сообщения: 138
Стаж: 19 лет 4 месяца
Откуда: Россия, Москва

Сообщение Splurov »

Егор Наклоняев
Вот это по правде действенный мод! :-)
Но бан - это слишком жестоко... А если юзер захотел себе скачать часть форума, а тут бац - и бан...
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Предлагаю отправлять забанненому пользователю, если это не гость, письмо о бане, хотя логика мне подсказывает, что чего-чего, а зарегистрированным пользователем качалка стать не может.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Самое смешное, что может. При тестовом скачивании Disko Pump определился пользователь.

Добавлено спустя 3 минуты 43 секунды:
Но бан - это слишком жестоко... А если юзер захотел себе скачать часть форума, а тут бац - и бан...
Ну, можнос делать менее брутально. например, проверку на анонимность. Анонимов банить, а зарегистрированным писать гневные письма и под копирку с админом.

Самое главное, этот мод должен зарэзать всех пауков, ворующих почтовые адреса для спаммеров.
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 19 лет 5 месяцев

Сообщение YarNET »

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

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

##############################################################
## MOD Title: Anti spam-bots
## MOD Author: Weird Alexis < alexisbietti@gmail.com > (Alexis BIETTI) http://www.artefact.zik.mu/
## MOD Description: This mod hides e-mail addresses of members to spam-bots and anonymous users.
## MOD Version: 1.0.0
##
## Installation Level: Easy
## Installation Time: 1 Minute
## Files To Edit: /groupcp.php, /memberlist.php, /viewtopic.php, /includes/usercp_viewprofile.php
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes: This mod was tested on phpBB version 2.0.4 *only*.
## 
##############################################################
## MOD History:
##
##   2004-10-24 - Version 1.0.0
##      - Initial version. Hides e-mail in topics, member list, profiles and groups.
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
 /groupcp.php
 
#
#-----[ FIND ]------------------------------------------
#
	if ( !empty($row['user_viewemail']) || $group_mod )
 
#
#-----[ REPLACE WITH ]------------------------------------------
#
	if ( empty($userdata['user_id']) || ($userdata['user_id'] == ANONYMOUS) )
	{
		if ( !empty($row['user_viewemail']) )
		{
			$email_img = '<img src="' . $images['icon_email'] . '" alt="' . $lang['Hidden_email'] . '" title="' . $lang['Hidden_email'] . '" border="0" />';
		}
		else
		{
			$email_img = '&nbsp;';
		}
		$email = '&nbsp;';
	}
	else if ( !empty($row['user_viewemail']) || $group_mod )

#
#-----[ OPEN ]------------------------------------------
#
/memberlist.php

#
#-----[ FIND ]------------------------------------------
#
		if ( !empty($row['user_viewemail']) || $userdata['user_level'] == ADMIN )
 
#
#-----[ REPLACE WITH ]------------------------------------------
#
		if ( empty($userdata['user_id']) || ($userdata['user_id'] == ANONYMOUS) )
		{
			if ( !empty($row['user_viewemail']) )
			{
				$email_img = '<img src="' . $images['icon_email'] . '" alt="' . $lang['Hidden_email'] . '" title="' . $lang['Hidden_email'] . '" border="0" />';
			}
			else
			{
				$email_img = '&nbsp;';
			}
			$email = '&nbsp;';
		}
		else if ( !empty($row['user_viewemail']) || $userdata['user_level'] == ADMIN )

#
#-----[ OPEN ]------------------------------------------
#
/viewtopic.php

#
#-----[ FIND ]------------------------------------------
#
		if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] )

#
#-----[ REPLACE WITH ]------------------------------------------
#
		if ( empty($userdata['user_id']) || ($userdata['user_id'] == ANONYMOUS) )
		{
			if ( !empty($postrow[$i]['user_viewemail']) )
			{
				$email_img = '<img src="' . $images['icon_email'] . '" alt="' . $lang['Hidden_email'] . '" title="' . $lang['Hidden_email'] . '" border="0" />';
			}
			else
			{
				$email_img = '&nbsp;';
			}
			$email = '&nbsp;';
		}
		else if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] )

#
#-----[ OPEN ]------------------------------------------
#
/includes/usercp_viewprofile.php

#
#-----[ FIND ]------------------------------------------
#
if ( !empty($profiledata['user_viewemail']) || $userdata['user_level'] == ADMIN )

#
#-----[ REPLACE WITH ]------------------------------------------
#
if ( empty($userdata['user_id']) || ($userdata['user_id'] == ANONYMOUS) )
{
	if ( !empty($profiledata['user_viewemail']) )
	{
		$email_img = '<img src="' . $images['icon_email'] . '" alt="' . $lang['Hidden_email'] . '" title="' . $lang['Hidden_email'] . '" border="0" />';
	}
	else
	{
		$email_img = '&nbsp;';
	}
	$email = '&nbsp;';
}
else if ( !empty($profiledata['user_viewemail']) || $userdata['user_level'] == ADMIN )

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
# 
# EoM 
Эффект 100%
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Ночной улов.

Username: Anonymous
IP: 208.223.208.181
User agent: Python-urllib/1.15

Добавлено спустя 6 минут 42 секунды:
Для защиты достаточно это использовать:
Кто бы спорил. Вполне достаточно, только нагрузку на сервер это не уменьшает. Пауки как шарахались, дергая БД, так и будут шарахаться.
А здесь - принудительная эфтаназия.
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 19 лет 5 месяцев

Сообщение YarNET »

4. Ставим в шаблоне overall_header.tpl ссылку вида <a href="mln.php"></a>
В шаблон только той темы, которая установлена по умолчанию?

Добавлено спустя 18 минут 44 секунды:

Кстати, вот от такого скрипт защищает:

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

[Mon Feb 14 14:39:55 2005] [error] [client 217.15.134.68] File does not exist: /home/forum/www/****** 
\xd0\x9f\xd1\x80\xd0\xbe\xd1\x81\xd0\xbc\xd0\xbe\xd1\x82\xd1\x80 \xd1\x82\xd0\xb5\xd0\xbc\xd1\x8b - 
\xd0\x94\xd0\xbe\xd1\x81\xd1\x82\xd1\x83\xd0\xbf \xd0\xba FTP ****** \xd0\xbe\xd1\x82\xd0\xba\xd1\x80\xd1\x8b\xd1\x82 
\xd0\x92\xd0\xa1\xd0\x95\xd0\x9c ).files, referer: http: //forum.******.ru/viewtopic.php?t=5896
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Егор Наклоняев
Как бы все это согласно шаблону модов оформить ;)

Добавлено спустя 50 минут 1 секунду:

Думаю еще, лучше использовать $HTTP_SERVER_VARS вместо $_SERVER;
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Splurov
phpBB 1.4.4
Сообщения: 138
Стаж: 19 лет 4 месяца
Откуда: Россия, Москва

Сообщение Splurov »

Xpert
1. Некоторые качалки на сколько я помню, куки из эксплорера умеют брать. Следовательно можно и зарегенным походить.
2. $HTTP_SERVER_VARS вместо $_SERVER - абсурдно как-то звучит... register_globals=off и только второе будет работать. А как-то знаете-ли, разработчики (да и я с ними полностью согласен), советуют off. От чего такая любовь к первому массиву?
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

2. $HTTP_SERVER_VARS вместо $_SERVER - абсурдно как-то звучит... register_globals=off и только второе будет работать. А как-то знаете-ли, разработчики (да и я с ними полностью согласен), советуют off. От чего такая любовь к первому массиву?
Xpert прав.
Объясняю. Политика phpBB совместимости с пресловутой 3 версией.
В случае register_globals=off $HTTP_SERVER_VARS определяется в коде phpBB.
DedPichto
phpBB 1.4.4
Сообщения: 104
Стаж: 19 лет 2 месяца

Сообщение DedPichto »

Disallow: /phpBB2/mln.php - в таком варианте файл mln.php запрещен к индексированию, но сам каталог phpBB2/ нет - я правильно понял?
DedPichto
phpBB 1.4.4
Сообщения: 104
Стаж: 19 лет 2 месяца

Сообщение DedPichto »

Блин, у меня гугл забанило почему-то :)

Username: Anonymous
IP: 66.249.65.204
User agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)


Хотя до этого я наблюдал в админке пару часов, как он индексирует страницы.

robots.txt:
Disallow: /cgi-bin
Disallow: /phpBB2/mln.php

сама ссылка <a href="mln.php"></a> находится между тегами <noindex></noindex>

И чего оно? :)

P.S. Во, не успел ип убрать из черного списка - индексирует дальше. Продолжаю наблюдения.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

DedPichto

У Вас должно быть robots.txt:

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

User-agent: * 
Disallow: /cgi-bin
Disallow: /phpBB2/mln.php 
Он ТАК выглядит?

Добавлено спустя 44 секунды:

У меня лично гугля не разу не лазила куда не следует.

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