/ / Защита от массовой рассылки персональных сообщений
май 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 в настройках групп.

Комментарии

hotdj

hotdj

29 мая 2010 12:21 Клиенты
0
Первый пошёл ))
dleua

dleua

29 мая 2010 12:58 Посетители
1
юзазаю, и поюзаю пока капчу, ну все равно спасибо! fellow
Dj Dance

Dj Dance

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

Intaniks

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

anime-barmen

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

DDA

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

designf

30 мая 2010 07:16 Клиенты
0
session_register ?

Для php 6.0 пройдет ли гладко?
ndiezel

ndiezel

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

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

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

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

celsoft

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

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

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

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

zimka

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

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

ndiezel

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

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

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

zimka

17 июня 2010 05:49 Клиенты
0
все капчу дле победили!!!
Rodenstern

Rodenstern

25 июня 2010 07:46 Клиенты
0
По моему (конечно могу и ошибаться) спам, массовым по всем аккаунтам происходит таким образом:
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 На конце выдавал бы ошибку?

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

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Календарь
«    Июнь 2017    »
ПнВтСрЧтПтСбВс
 1234
567891011
12131415161718
19202122232425
2627282930 
Опрос на сайте
Совершаете ли вы покупки в интернет?

Популярные новости
Архив новостей
Июнь 2017 (1)
Апрель 2017 (3)
Март 2017 (2)
Февраль 2017 (1)
Январь 2017 (1)
Декабрь 2016 (3)