Главная » Хаки DLE » Хак Защита DataLife Engine от внешних ссылок

Хак Защита DataLife Engine от внешних ссылок

  • Хаки DLE

Хак Защита DataLife Engine от внешних ссылок


Защита DataLife Engine от внешних ссылок

Благодаря пользователям, которые использовали мою систему защиты от спам ссылок, был сделан данный релиз статьи со всеми исправлениями кода. Для тех, кто не знаком с предыдущими статьями, объясняю, с помощью несложных действий описанных в статье вы избавитесь от «нежелательных» ссылок с вашего сайта на лучшем движке DataLife Engine.

Наверное, вы заметили, что спамеры делают у себя в профиле, в комментариях (вставка ссылок в точки, пробелы, смайлики). Лезут за бесплатным тИЦ, уничтожая наши сайты, но на каждое действие, есть противодействие. И одно из них расписано в этой статье. Уделив немного времени на прочтение и выполнение этих действий, вы закроете все ссылки (будущие, увы, движок не имеет возможности перерасчета статей) в теги noindex для запрета индексации ссылки Яндексом, добавим также атрибут nofollow для запрета передачи PR Google.

Убедительно прошу, перед редактированием файлов движка DLE, сделайте резервные копии редактируемых файлов! Так же, я упускаю все предыдущие статьи, и все файлы мы будем создавать заново, так что приготовьте оригинальные файлы, что бы ни напортить чего либо.

Для редактирования и написания некоторых файлов я взял лучший текстовый редактор – Notepad++, советую использовать и вам его. Для начала зайдите на свой FTP или через панель администратора хостинга, как вам удобнее. Находим в каталоге engine/classes/ файл parse.class.php, открываем его нашим редактором найдите следующую строчку кода:

if ($this->filter_mode) $txt = $this->word_filter($txt, false);



После него аккуратно копируем и вставляем код приведенный ниже:

/* 
Назначение: Раскодировка сформированного URL-адреса
Автор: www.seomax.info
*/
$txt = preg_replace( "#<!--FFriend--><noindex><a rel=\"nofollow\" href=[\"'](http://|https://|ftp://|ed2k://|news://|magnet:)?(\S.+?)['\"].+?".">(.+?)</a></noindex><!--EndFFriend-->#ie" , "\$this->decode_friend('\\1\\2', '\\3')", $txt );



Продвигаемся далее по коду и находим такой код:

return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];



Удаляем его и вместо него пишем следующий (если копируете, то копируйте внимательно!) код:

/* 
Назначение: Формирование URL-адреса
Автор: www.seomax.info
*/
if($this->check_home($url['html'])||$this->check_friends($url['html']))
{
       return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end'];
}
else
{
      $url['html'] = $config['http_home_url']."go/?".($url['html']);
      return "<!--FFriend--><noindex><a rel=\"nofollow\" href=\"".$url['html']."\" ".$target.">".$show."</a></noindex><!--EndFFriend-->" . $url['end'];
}


Продвигаемся далее по коду и находим следующий код:

function word_filter($source, $encode = true) {



Выше этого кода пишем следующий код:

/*
Функция: "Дружественный URL"
Автор: www.seomax.info
*/    
function check_friends ($url)
{
    global $config;        
    $friend_url = file($config['http_home_url']."engine/friend/friend_url.txt");      
        
    for ($i = 0; $i < count($friend_url); $i++)
    {
        $value = str_replace("http://", "", trim($friend_url[$i]));
        $value = str_replace("www.", "",    $value);
        $value = explode('/', $value);
        $value = reset($value);
                      
        if ($value == "" ) continue;
        if (strpos($url, $value) === false) continue; else return true;
    }
    return false;
}


И последний шаг для редактрирования этого файла. Найдите код:

return "[leech=".$url."]".$show."[/leech]";
}



Ниже пишем следующий код (аккуратно копируйте, не пропустите строки, символы):

/*
Функция: Раскодировка сформированного URL-адреса
Автор: www.seomax.info
*/
function decode_friend($url="", $show="")
{    
    global $config;
    $home_url = $config['http_home_url']."go/?";
        
    $url = str_replace($home_url, "", $url);
    $url = explode ("url=", $url);
    $url = end ( $url );
    $url = rawurldecode($url);
        
    return "[url=".$url."]".$show."[/url]";
}



Все, сохраняйте файл parse.class.php, но не спешите закрывать FTP менеджер, он еще нам нужен. Перейдите в каталог engine и создайте папку friend. В нее нужно добавить файл friend_url.txt, структура этого "текстового" файла простая - список URL-адресов дружественных сайтов. Не забудьте добавить права на чтение нашей папки и файла с URL. Смотрите пример:

http://zone-game.info/
http://forum.zone-game.info/


Список составляете так как я вам привел в примере. Обратите внимание на то, что все URL нужно указывать с http:// в начале и / в конце. Думаю вы сохранили уже этот список в каталог engine/friend/ с именем friend_url.txt и мы можем продолжать дальше. А дальше нам нужно перейти в корень сайта и создать в нем папку go. Теперь с помощью нашего Notepad++ сделайте файл index.php со следующим кодом:


<?php
if (!empty($_SERVER['QUERY_STRING'])){
$re_addr=$_SERVER['QUERY_STRING'];
header('Location: '.$re_addr);
}
?>



Теперь поместите этот файл в каталог go который мы только что создали. Так же, так как хостингов очень много, и практически у каждого свои настройки Apache и так далее, бывает что не определяется файл как индексный. Давайте это исправим, создайте файл .htaccess с текстом внутри:

DirectoryIndex index.php
RewriteEngine Off


После этих действий можно тестировать наши наработки. Еще что бы я посоветовал, для особо мнительных :) в robots.txt закройте индексацию каталога go. Все, я думаю это финальная версия этого хака, хотя была идея (может быть когда-то) создать еще возможность добавления URL-адресов дружественных сайтов из панели администратора, но думаю это не важно, да и вообще - не нужно. Как всегда, если остались вопросы, пожалуйста, задавайте, я с удовольствием на них отвечу.

Поддержка: http://seomax.info/13-zashhita-datalife-engine-ot-vneshnikh-ssylok.html

Автор: PROGRAMMATOR
Стоимость: Бесплатно

источник: http://seomax.info

Ключевые слова по теме Хак Защита DataLife Engine от внешних ссылок: хак для DLE, ссылки, защита в DataLife Engine от внешних ссылок