Поиск по сайту
Вход на сайт
Обратите внимание
Топ-новости
Архив сайта
Апрель 2016 (1)
Апрель 2014 (1)
Ноябрь 2013 (1)
Октябрь 2013 (1)
Май 2013 (2)
Апрель 2013 (8)
Партнеры

seo-monster.ru - сервис проверки доменов
хочешь такой же информер? Информер ТИЦ и PR

» » Защищаемся от спам-комментариев

Защищаемся от спам-комментариев

Хаки

Автор: Progr

В последнее время заметил, что приходят комментарии выстроеные следующим образом: пишут текст (например, "Спасибо!"), делают к каждой букве ссылку на разные сайты и меняют цвет на белый (цвет фона), потом выравнивают по правому краю и этот текст становится фактически не отображаемым.

Как же с этим бороться?
А очень просто! Сейчас мы сделаем так, чтоб ссылки попадали в noindex и nofollow (кроме ссылок с под/домена сайта).

Открываем "/engine/modules/addcomments.php" и ищем:

    if ($config['allow_comments_wysiwyg'] != "yes")
        $comments = $db->safesql($parse->BB_Parse($parse->process($_POST['comments']), false));
    else{
        $parse->wysiwyg = true;
        $parse->ParseFilter(Array('div', 'a', 'span', 'p', 'br'), Array(), 0, 1);
        $comments = $db->safesql($parse->BB_Parse($parse->process($_POST['comments'])));
    }

    $comments    = word_filter($comments);


После этого вставляем:

function preg_link($a1, $a2, $a3) {
global $is_logged, $config;
    $a1 = str_replace(array('"', "'"), '', $a1);
    $a2 = stripslashes(trim($a2));
    $a2 = ($a2 != '') ? ' ' . $a2 : '';

/*########
Небольшая фича: если хотите, чтоб ссылки от зарегистрированных пользователей не попадали под ноуиндекс и ноуфоллоу, то стерите начальный комментарий "//#", но текст после их не трогайте!
########*/
    
//#    if (!$is_logged) {
    
        $home = str_replace(array('http://', 'www.'), '', $config['http_home_url']);
        $home = substr($home, 0, strpos($home, '/'));
        
        if (stristr($a1, $home) === false) {
            return '<noindex><a href="' . $a1 . '"' . $a2 . ' rel="nofollow">' . $a3 . '</a></noindex>';
        } else {
            return '<a href="' . $a1 . '"' . $a2 . '>' . $a3 . '</a>';
        }
//#    } else {
//#        return '<a href="' . $a1 . '"' . $a2 . '>' . $a3 . '</a>';
//#    }
}
    
function clear_hrefs($string) {
    return preg_replace('#<a.*href="(.*)"([^>]*)>(.*)</a>#iUes', "preg_link('$1', '$2', '$3')", stripslashes($string));
}
    
    $comments = addslashes(clear_hrefs($comments));


Возможно, в новых версиях что-то подобное уже проделано.

У вас не ставится dle модуль или dle шаблон работает не правильно? Задайте вопрос на нашем форуме по DLE(Datalife Engine CMS) и Вам обязательно помогут!



Если появились вопросы по поводу Защищаемся от спам-комментариев или Вы хотите высказаться, то пройдите регистрацию или авторизируйтесь и оставляйте комментарии.
#1 написал: gromdron (22 сентября 2008 20:46)

Публикаций: 0
Комментариев: 0
Предупрежден значит защищен. Спасибо за хак
#2 написал: kakoka13 (27 июля 2009 07:03)

Публикаций: 0
Комментариев: 0
спс огромное bully
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Вверх