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

Тема в разделе "DLE", создана пользователем ewg777, 5 май 2008.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. ewg777

    ewg777

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

    Как же с этим бороться?

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

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

    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(), 01);
            
    $comments $db->safesql($parse->BB_Parse($parse->process($_POST['comments'])));
        }

        
    $comments    word_filter($comments);

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


    PHP:
    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($home0strpos($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));
    Возможно, в новых версиях что-то подобное уже проделано.
    По материалу сайта 4dle.ru
     
    gruppastimul и BingoS нравится это.
  2. wwwkila

    wwwkila

    Регистр.:
    29 дек 2006
    Сообщения:
    196
    Симпатии:
    32
    бороться ещё проще, запрещаешь гостям и посетителям использование кликабельных ссылок и всё - проблемы нет
    версия 7.0 решила её раз и навсегда
     
  3. shisha

    shisha Прохожие

    Нет увы ты не прав мой друг да активная линка Бьет по рейту сильтее но пасивная говорит о цетировании что тоже идет в + цетируемогу сайу и в - твоему большая накрутка линков

    Но индекс но фалов будет хорош конечно но не стоит забывать о том что данный скрипт не применяет его к обыному текту что былобы тоже весьма хорошо чтобы щатить цетируемые сайта от просмотра роботами

    Данный хак позволяет дать роботу понять что "***ду* вася тут тебе ловить не чего не твоя територия, конечно под тИЦ не поподет, но черт кто сказал что все роботы слушаются правил?

    Лучше действительно зделать так чтобы все ссылки были пасивными и влияи только на индекс цетирования илиже просто настроить мощьный редерект лутчше 2ух уровневый через фрейм при том что на каждом из уровней поменить но индек но фалов в нужных местах, что мы от этого получим? Не читаемые страницы поисковиками страница второго уровня тупой фрейм тоесть сайта врага в вашем окошке, а фреймы частенько игнорируются поисковиками, хоть и посчитаетет что это задротсво зато грамотно и красиво, идея с лунки взята =)
     
  4. Denkin

    Denkin Постоялец

    Регистр.:
    14 апр 2007
    Сообщения:
    95
    Симпатии:
    16
    А меня последнее время замучили комментарии с кликабельными смайликами. Под смайлики ссылки прячут.
     
  5. dm_mb

    dm_mb

    Регистр.:
    6 июн 2006
    Сообщения:
    610
    Симпатии:
    122
    дык обновитесь на 7.0 - поставьте галку в настройке группы - запреить ссылки в коментах и все. спи спокойно.

    нафига велосипеды изобретать?
     
  6. Denkin

    Denkin Постоялец

    Регистр.:
    14 апр 2007
    Сообщения:
    95
    Симпатии:
    16
    Хаки стоят, которые не подогнанны ещё под эту вресию. Надо для 6.5
     
Статус темы:
Закрыта.