• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Хак Ещё один способ защиты от СПАМа!

Статус
В этой теме нельзя размещать новые ответы.

Laif

Постоялец
Регистрация
8 Дек 2007
Сообщения
114
Реакции
22
1) Версия ДЛЕ 7.х
2) Как нулл так и лицензия

В DLE есть такая прекрасная опция, которая помогает запретить пользователям использование кликабельных ссылок в комментариях и профиле (в поле "О себе:"). Но при таком запрете в комментариях и в профиле все равно остаются ссылки.
Например:
PHP:
[url=http://spamsitexxx]мой блог![/url]
Да они уже не кликабельные, но адреса тех сайтов остались. Это можно легко решить, а вернее сделать так чтобы в следующий раз пользователь не смог добавить такие ссылки.

Не хотелось бы сразу загружать вас кодом плюсы и минусы которого вы не знаете:
+ Это помогает избавиться от надоедливых комментариев со СПАМом.
- Даже не кликабельные ссылки пользователю нельзя будет добавить.
+ Это существенно с экономит ваше время на проверке комментариев и пользователей.
+ Администрация сайта, а верней администратор и главный редактор исключение. Они могу легко добавлять ссылки.

= Этот хак подходит для развлекательных сайтов и других ресурсов где ссылки в комментариях не нужны.

Ну что ж пора преступать к установке!

1. Зайдите в engine/modules/register.php
Найдите:
Код:
if (strlen($icq) > 20) $stop .= $lang['reg_err_17'];

После вставьте:
Код:
if (strstr($info, "[url") or strstr($info, "<a") or strstr($info, "href") or strstr($info, "http:") or strstr($info, "www.") or strstr($info, ".net") or strstr($info, ".su") or strstr($info, ".ru") or strstr($info, ".com") or strstr($info, ".ws") or strstr($info, ".lv") or strstr($info, ".ua")){
           $stop .= $lang['reg_err_24'];
        }

2. Зайдите в engine/modules/addcomments.php
Найдите:
Код:
if ($comments ==''){
        $stop[] = $lang['news_err_11'];
        $CN_HALT = TRUE;
    }
После вставьте:


Код:
 if ($member_id['user_group'] > 2){
    if (strstr($comments, "[url") or strstr($comments, "<a") or strstr($comments, "href") or strstr($comments, "http:") or strstr($comments, "www.") or strstr($comments, ".net") or strstr($comments, ".su") or strstr($comments, ".ru") or strstr($comments, ".com") or strstr($comments, ".ws") or strstr($comments, ".lv") or strstr($comments, ".ua"))
    {
        $stop[] = $lang['news_err_30'];
        $CN_HALT = TRUE;
    }
    }

3. Зайдите в engine/modules/profile.php
Найдите:

Код:
if (strlen($info) > 1000)
    {
        
            $stop .= $lang['news_err_22'];
    }

После вставьте:


Код:
if ($member_id['user_group'] > 2){
    if (strstr($info, "[url") or strstr($info, "<a") or strstr($info, "href") or strstr($info, "http:") or strstr($info, "www.") or strstr($info, ".net") or strstr($info, ".su") or strstr($info, ".ru") or strstr($info, ".com") or strstr($info, ".ws") or strstr($info, ".lv") or strstr($info, ".ua"))
    {
        
            $stop .= $lang['reg_err_24'];
    }
    if (strstr($signature, "[url") or strstr($signature, "<a") or strstr($signature, "href") or strstr($signature, "http:") or strstr($signature, "www.") or strstr($signature, ".net") or strstr($signature, ".su") or strstr($signature, ".ru") or strstr($signature, ".com") or strstr($signature, ".ws") or strstr($signature, ".lv") or strstr($signature, ".ua"))
    {
        
            $stop .= $lang['user_err_01'];
    }
    }

4. Зайдите в engine/ajax/editcomments.php
Найдите:

Код:
if( $comm_txt == ""){

        die ("error");

    }

После вставьте:


Код:
 if ($member_id['user_group'] > 2){
    if (strstr($comm_txt, "[url") or strstr($comm_txt, "<a") or strstr($comm_txt, "href") or strstr($comm_txt, "http:") or strstr($comm_txt, "www.") or strstr($comm_txt, ".net") or strstr($comm_txt, ".su") or strstr($comm_txt, ".ru") or strstr($comm_txt, ".com") or strstr($comm_txt, ".ws") or strstr($comm_txt, ".lv") or strstr($comm_txt, ".ua"))
    {
        die("error");
    }
    }


5. Зайдите в language/ВАШ ЯЗЫК/website.lng
Найдите:

Код:
'reg_err_18'    =>    "Внимание, обнаружена ошибка",
После вставьте:

Код:
'reg_err_24'    =>    "Внимание, обнаружена ошибка! В поле 'О себе:' не могут содержаться какие либо ссылки!",
'user_err_01'    =>    "Внимание, обнаружена ошибка! В поле 'Подпись:' не могут содержаться какие либо ссылки!",

Найдите:

Код:
'news_err_29'        =>    "Добавление комментариев для данной новости запрещено.",

После вставьте:

Код:
'news_err_30'        =>    "Ошибка! Ваш комментарий не может быть добавлен из за возможного содержания в нем СПАМа.",

В 7.5 в 3-м пункте, надо искать не это

Код:
if (strlen($info) > 1000)
{

$stop .= $lang['news_err_22'];
}


а вот это

Код:
if( intval( $user_group[$member_id['user_group']]['max_info'] ) > 0 and strlen( $info ) > $user_group[$member_id['user_group']]['max_info'] ) {

$stop .= $lang['news_err_22'];
}

Взял с 4dle, думаю будет полезно.
 
  • Заблокирован
  • #2
А при следующем апгрейде движка это всё не слетит? Будут ли изменены эти коды в новой версии dle по умолчанию (в 7.6 например)?
 
ну во-первых следующая будет 8.0 странно что вы этого не знаете.
А во-вторых - да слетит, больше того, вероятно что код версии 8.0 будет сильно отличаться от существующего (API) - Информация есть на офф. сайте
 
Обязательно слетит! А может подождать релиза 8-й наверняка там будут какие-либо новшества по защите от спама!
 
сам давно использую этот метод, всем советую.
единственным минусом считаю, что нет доверенных групп - кому можно оставлять ссылки в комментах, а кому нет, т.к. сам админ потом прокомментировать с кликабельными ссылками не сможет.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху