Главная страница / Советы / Защита от массовой рассылки персональных сообщений
май 29 2010

Защита от массовой рассылки персональных сообщений

Дорогие друзья,

Последнее время стали поступать сообщения о том что сайты подвергаются массовой рассылке персональных сообщений при помощи спам программ. В новой версии скрипта будут предусмотрены множественные алгоритмы защиты, позволяющие полностью предотвратить данные действия. В текущей версии скрипта существуют два механизма защиты: первый, это включение в настройках групп каптчи для комментариев и персональных сообщений, данный механизм гарантирует полную защиту от имеющихся на данный момент спам программ, второй, это более радикальный способ - отключение в настройках групп разрешение на использование персональных сообщений. Данные методы безусловно обладают своими недостатками, так например многие не хотят включать каптчу для комментариев, хотя мы рекомендуем ее включать для обычных посетителей, т.к. это очень хороший механизм от спама в комментариях.

Для тех кому не подходят данные методы, мы хотим предоставить небольшой временный дополнительный механизм защиты от спама, до тех пор пока не вышла новая версия скрипта.

Итак откройте файл engine/modules/pm.php и найдите:
    $stop = "";

добавьте ниже
    $id_key = $_POST[$_SESSION['id_key']];            
    if( $id_key == "" or $id_key != $dle_login_hash ) $stop .= "<li>ANTISPAM: User ID not valid</li>";
    if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) $stop .= "<li>ANTISPAM: User ID not valid</li>";

далее в этом файле найдите строчки:
    if( $config['allow_comments_wysiwyg'] == "yes" ) $tpl->copy_template = "<form  method=\"post\" name=\"dle-comments-form\" id=\"dle-comments-form\" onsubmit=\"document.getElementById('comments').value = tinyMCE.get('comments').getContent(); if(document.getElementById('dle-comments-form').name.value == '' || document.getElementById('dle-comments-form').subj.value == '' || document.getElementById('comments').value == ''){alert('{$lang['comm_req_f']}');return false}\" action=\"\">\n" . $tpl->copy_template . "<input name=\"send\" type=\"hidden\" value=\"send\" /></form>";
    else $tpl->copy_template = "<form  method=\"post\" name=\"dle-comments-form\" id=\"dle-comments-form\" onsubmit=\"if(document.getElementById('dle-comments-form').name.value == '' || document.getElementById('dle-comments-form').subj.value == '' || document.getElementById('dle-comments-form').comments.value == ''){alert('{$lang['comm_req_f']}');return false}\" action=\"\">\n" . $tpl->copy_template . "<input name=\"send\" type=\"hidden\" value=\"send\" /></form>";

замените их на:
    $salt = "abchefghjkmnpqrstuvwxyz";
    $random_key = "";
            
    for($i = 0; $i < 8; $i ++) {
        $random_key .= $salt{rand( 0, 23 )};
    }
            
    @session_register( 'id_key' );
    $_SESSION['id_key'] = $random_key;
            
    $random_key = "<input name=\"{$random_key}\" type=\"hidden\" value=\"{$dle_login_hash}\" />";
    
    if( $config['allow_comments_wysiwyg'] == "yes" ) $tpl->copy_template = "<form  method=\"post\" name=\"dle-comments-form\" id=\"dle-comments-form\" onsubmit=\"document.getElementById('comments').value = tinyMCE.get('comments').getContent(); if(document.getElementById('dle-comments-form').name.value == '' || document.getElementById('dle-comments-form').subj.value == '' || document.getElementById('comments').value == ''){DLEalert('{$lang['comm_req_f']}', dle_info);return false}\" action=\"\">\n" . $tpl->copy_template . "{$random_key}<input name=\"send\" type=\"hidden\" value=\"send\" /></form>";
    else $tpl->copy_template = "<form  method=\"post\" name=\"dle-comments-form\" id=\"dle-comments-form\" onsubmit=\"if(document.getElementById('dle-comments-form').name.value == '' || document.getElementById('dle-comments-form').subj.value == '' || document.getElementById('dle-comments-form').comments.value == ''){DLEalert('{$lang['comm_req_f']}', dle_info);return false}\" action=\"\">\n" . $tpl->copy_template . "{$random_key}<input name=\"send\" type=\"hidden\" value=\"send\" /></form>";


Собственно все. Данное решение временное и распространяется на текущие версии спам программ, в новой версии будут разработаны механизмы, обеспечивающие защиту, от любых типов программ. Мы в свою очередь, все равно рекомендуем применять на данный момент для защиты, не вышеуказанный патч, а включение кода безопасности CAPTCHA в настройках групп.

Комментарии

  1. hotdj (Клиенты)

    29 мая 2010 12:21 11 комментариев
    Первый пошёл ))
  2. dleua (Посетители)

    29 мая 2010 12:58 1 комментарий
    юзазаю, и поюзаю пока капчу, ну все равно спасибо! fellow
  3. Dj Dance (Клиенты)

    29 мая 2010 13:24 18 комментариев
    Я пока использую капчу, но с нетерпением жду новую ступеньку в защите DLE winked
  4. Intaniks (Клиенты)

    29 мая 2010 15:08 13 комментариев
    Я столкнулся сегодня с такой же проблемой - рассылка спама и решил просто включить капчу юзерам, которые зареганы не больше недели. Посмотрим что будет...
  5. anime-barmen (Посетители)

    29 мая 2010 15:31 20 комментариев
    Интересно когда обновление winked
  6. DDA (Посетители)

    30 мая 2010 07:14 10 комментариев
    вот уже первое упоминание о новой версии скрипта)) ждем)))
  7. designf (Посетители)

    30 мая 2010 07:16 36 комментариев
    session_register ?

    Для php 6.0 пройдет ли гладко?
  8. ndiezel (Клиенты)

    30 мая 2010 13:10 20 комментариев
    Почему нельзя сделать нормальную защиту от ботов при регистрации?
    Это автоматом защитит и от спама в ПС и вообще от спама.

    Сделать или каптчу, которая будет формироваться из шрифтов пользователя, или вообще модуль вопросов.

    Это бы решило вообще все проблемы.
    ИМХО данная запись - борьба с результатом, а не с событием.

    Я решил проблему спама вот так - http://ndiezel.name/412-xak-dlya-dle-zashhita-ot-botov.html
  9. celsoft (Администраторы)

    30 мая 2010 14:45 3 417 комментариев
    Цитата: ndiezel
    Почему нельзя сделать нормальную защиту от ботов при регистрации?
    Это автоматом защитит и от спама в ПС и вообще от спама.

    Сделать или каптчу, которая будет формироваться из шрифтов пользователя, или вообще модуль вопросов.

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

    Многие разрешают публиковать все подряд и всем зарегистрированным, без всяких флуд контролей, и каптчи, а потом думают, это наверное бот зарегистрировался и проблема в регистрации. Проблема не в регистрации, а в том что вы разрешили в настройках групп. Зарегистрировался человек, а ему после этого абсолютно все доступно и публикация ссылок и комментарии без контроля и каптчи, все, осталось только вбить свой логин и пароль от сайта в настройки спам ботов.
  10. zimka (Клиенты)

    31 мая 2010 15:23 15 комментариев
    Цитата: ndiezel
    Сделать или каптчу, которая будет формироваться из шрифтов пользователя, или вообще модуль вопросов.

    Открою Вам секрет! длешную капчу еще ни одна программа не может разгадать ... а то что Вы поменяете капчу лучше не станет... есть такие сервисы на подобие антикапчи.... там сидят китайцы и ручками вбивают капчу smile а вопрос ответ тоже не поможет... если только на время...
  11. ndiezel (Клиенты)

    31 мая 2010 18:05 20 комментариев
    давно уже все реализовано и никто не мешает загрузить в специальную папку свои файлы с шрифтами

    Угу.
    Только одна беда - шрифты в картинках.
    Мне картинки самому делать? Вымерять каждый пиксель?
    Или есть супер-пупер-мега прога, которая идет в стандартном наборе ДЛЕ, которой из ttf можно gif делать?

    Вы не подумайте, я люблю ДЛЕ, но как появилась эта функция - открыл я эту папочку, посмотрел стандартных шесть (или сколько их там) картинок со шрифтами, закрыл папочку.
    И забыл про этот модуль.
  12. zimka (Клиенты)

    17 июня 2010 05:49 15 комментариев
    все капчу дле победили!!!
  13. Rodenstern (Клиенты)

    25 июня 2010 07:46 12 комментариев
    По моему (конечно могу и ошибаться) спам, массовым по всем аккаунтам происходит таким образом:
    http://www.xxx.xx/index.php?do=pm&doaction=newpm&user=I
    просто ставят i++ переменную и тем самым расслыются письма пользователям
    http://www.xxx.xx/index.php?do=pm&doaction=newpm&user=1
    http://www.xxx.xx/index.php?do=pm&doaction=newpm&user=2
    http://www.xxx.xx/index.php?do=pm&doaction=newpm&user=3
    Можно как то что бы user=, смотрелось не по ID юзера, а например по нику, при этом вариант с ID На конце выдавал бы ошибку?

    Тогда рассылать спам уже будет проблема, нужно как минимум знать ники тех, кому будешь слать, или я не прав?

Информация

Комментирование публикаций доступно только пользователям имеющим действующую лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Календарь

«    Сентябрь 2020    »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930 

Опрос на сайте

Совершаете ли вы покупки в интернет?