Dleshka.org
Авторизация

Хак Сохраняем тИЦ и google PR

+1
TipTop 29-06-2009 Хаки DLE 0 комментариев
Если у вас есть хороший проект, то вы наверняка замечали, что у вас регаются пользователи, чтобы написать всего лишь один комментарий, типа: "Спасибо за ресурс!", "Мда, неплохо...", "Огромное человеческое спасбо!" и многие другие...
На самом деле это боты (в большинстве случаев), которые отнимают у вас тИЦ и/или PR.

-Какими способами?
-Элементарно:
1. Если у вас разрешено добавлять комментарии гостям, то они вместо е-майла пишут свой сайт... Это +1 внешняя ссылка...
2. В поле "Информация о себе" они пишут URL-ы. Это + одна или несколько внешних ссылок!!!
3. В самих сообщениях пишут URL-ы сайтов как напрямую (через url= )? так и через смайлики (чтобы незаметно было)

Далее - как избавиться и предотвращать внешние ссылки...

I. Убираем "гостевые ссылки" из комментариев


1-й способ - админ-панель
АдмиЦентр -> Настройка системы -> Настройки комментариев -> Разрешить комментировать новости -> НЕТ


2-й способ - запрет чтения для определенных групп

Открываем engine/modules/show.full.php
Находим:
<!--ecode1-->} else {

$tpl->set( '{edit-date}', "" );
$tpl->set( '{editor}', "" );
$tpl->set( '{edit-reason}', "" );
$tpl->set_block( "''si", "" );
$tpl->set_block( "''si", "" );
}<!--code2-->

Ниже вставляем:

<!--ecode1-->if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}

if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}<!--code2-->


Открываем engine/modules/lastcomments.php
Находим:
<!--ecode1-->} else {
$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );
}<!--code2-->


Ниже вставляем:

<!--ecode1-->if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}

if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}<!--code2-->




Открываем templates/ВАШ_ШАБЛОН/comments.tpl
Находим:

<!--ecode1-->{author}<!--code2-->

Заменяем на:

<!--ecode1-->[not-group=5]{author}[/not-group<!--code2-->


Где 5 - это id группы. В данном случае мы запрещаем просмотр гостям и поисковикам, чтобы они не видели ссылки.
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей


3-й способ - разрешаем чтение только определенным группам

Открываем engine/modules/show.full.php
Находим:

<!--ecode1-->} else {

$tpl->set( '{edit-date}', "" );
$tpl->set( '{editor}', "" );
$tpl->set( '{edit-reason}', "" );
$tpl->set_block( "''si", "" );
$tpl->set_block( "''si", "" );
}<!--code2-->


Ниже вставляем:

<!--ecode1-->if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}

if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}<!--code2-->


Открываем engine/modules/lastcomments.php
Находим:

<!--ecode1-->} else {
$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );
}<!--code2-->

Ниже вставляем:

<!--ecode1-->if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}

if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}<!--code2-->




Открываем templates/ВАШ_ШАБЛОН/comments.tpl
Находим:

<!--ecode1-->{author} (а также ключевую фразу по вашему дизайну, например "{author} пишет"<!--code2-->


Заменяем на (по дефолту):

<!--ecode1-->[group=1,2,3,4]{author}[/group]<!--code2-->


Здесь мы разрешаем чтение группам Администраторы, Главные редакторы, Журналисты, Посетители (то есть всем кроме группы 5 - гости, то есть запрет поисковикам и гостям)
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей


4-й способ - банальный noindex

Открываем templates/ВАШ_ШАБЛОН/comments.tpl
Находим:

<!--ecode1-->{author}<!--code2-->


Заменяем на:
<!--ecode1-->{author}<!--code2-->



II. Убираем внешние ссылки из поля "О себе"


1-й способ - запрет чтения поля для определенных групп

Открываем engine/modules/profile.php
Находим:

<!--ecode1-->} else {

$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );

}<!--code2-->



Ниже вставляем:

<!--ecode1-->if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}

if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}<!--code2-->



Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:

<!--ecode1-->
Немного о себе:
{info}
<!--code2-->


Заменяем на:

<!--ecode1-->[not-group=5]
Немного о себе:
{info}
[/not-group]<!--code2-->



Где 5 - это id группы. В данном случае мы запрещаем просмотр гостям и поисковикам, чтобы они не видели ссылки.
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей

2-й способ - разрешение чтения поля только определенным группам

Открываем engine/modules/profile.php
Находим:

<!--ecode1-->} else {

$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );

}<!--code2-->


Ниже вставляем:

<!--ecode1-->if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}

if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}<!--code2-->


Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:

<!--code1-->
<!--ecode1-->
Немного о себе:
{info}
<!--code2-->
<!--ecode2-->



Заменяем на (по дефолту):

<!--ecode1-->[group=1,2,3,4]
Немного о себе:
{info}
[/group]<!--code2-->


Здесь мы разрешаем чтение группам Администраторы, Главные редакторы, Журналисты, Посетители (то есть всем кроме группы 5 - гости, то есть запрет поисковикам и гостям)
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей

3-й способ - удаление поля

Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:

<!--ecode1-->
Немного о себе:
{info}
<!--code2-->


Удаляем :

<!--ecode1-->
Немного о себе:
{info}
<!--code2-->

Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:

<!--ecode1-->Немного о себе:
{info}<!--code2-->


Заменяем на:

<!--ecode1-->
Немного о себе:
{info}
<!--code2-->


III. Предотвращаем появление внешних ссылок из самих комментариев

Открываем engine/modules/addcomments.php
Находим:

<!--ecode1-->if( strlen( $name ) > 50 ) {
$stop[] = $lang['news_err_1'];
$CN_HALT = TRUE;
}<!--code2-->

Ниже вставляем:

<!--ecode1--> if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['comments']) || preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['name']))
{
$stop[] = "URL адреса сайтов, публиковать ЗАПРЕЩЕНО!";
$CN_HALT = TRUE;
}<!--code2-->



Этот способ найден на каком-то сайте...

Вот вроде бы и всё))
Все эти способы просты и большинство их может сделать самостоятельно.

Автор: sanshteyn
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Авторизация