Тема: Борьба и защита от спама в DLE 9.7
Всем привет, кто какие хаки по защите DLE 9.7 от спама знает? Поделитесь актуальными ссылками.
Сообщество читателей блога alaev.info
Не ссы! Входи или зарегистрируйся!
Форум АлаичЪ'а о SEO → Доработки и хаки для DLE → Борьба и защита от спама в DLE 9.7
Стр.: 1 2
Надо войти или зарегиться
Всем привет, кто какие хаки по защите DLE 9.7 от спама знает? Поделитесь актуальными ссылками.
дополнительный вопрос при регистрации спасает в 90% случаев.
ПафНутиЙ, А как быть с профелем и в сообщениях
Такой обширный вопрос....смотря где опять же...капча и дополнительный вопрос как сказал ПафНутиЙ, несомненно, что касается профиля
/language/Russian/website.lng и после строчки
'news_err_1' => "Вы ввели слишком длинное имя.",
Добавляем
'news_err_url' => "URL адреса сайтов, в поле \"О себе\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!",
'news_err_url_p' => "URL адреса сайтов, в поле \"Подпись\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!",
Теперь запретим наглым людям ставить ссылки при регистрации
файл /engine/modules/register.php
перед
if( dle_strlen( $fullname, $config['charset'] ) > 100 ) $stop .= $lang['reg_err_15'];
Вставляем это;
if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['info'])) $stop .= $lang['news_err_url'];
Всё теперь при регистрации ссылку уже не вставишь в профиль, но что мешает изменить профиль потом и вставить ссылку?
идём /engine/modules/profile.php
после
if( intval( $user_group[$member_id['user_group']]['max_info'] ) > 0 and dle_strlen( $info, $config['charset'] ) > $user_group[$member_id['user_group']]['max_info'] ) {
$stop .= $lang['news_err_22'];
}
Вставляем
if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['info']))
{
$stop .= $lang['news_err_url'];
}
Дальше в этом же файле после
if( intval( $user_group[$member_id['user_group']]['max_signature'] ) > 0 and dle_strlen( $signature, $config['charset'] ) > $user_group[$member_id['user_group']]['max_signature'] ) {
$stop .= $lang['not_allowed_sig'];
}
if( dle_strlen( $fullname, $config['charset'] ) > 100 ) {
$stop .= $lang['news_err_23'];
}
Вставляем
if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['info']))
{
$stop .= $lang['news_err_url_p'];
}
Всё в профиле теперь ссылок не будет.
КОММЕНТАРИИ!!
"/engine/modules/addcomments.php" идем туда
После
if( $is_logged and ($member_id['restricted'] == 2 or $member_id['restricted'] == 3) ) {
$stop[] = $lang['news_info_3'];
$CN_HALT = TRUE;
}
добавляем
if( $member_id['user_group'] > 2){
if (preg_match ("/href|url|http|www|\.ru|\.com|\.net|\.info|\.org/i", $_POST['comments']) || preg_match ("/href|url|http|www|\.ru|\.com|\.net|\.info|\.org/i", $_POST['name']))
{
$stop[] = "Извините, публиковать ссылки в комментариях запрещено!";
$CN_HALT = TRUE;
}}
Тут "$member_id['user_group'] > 2" отвечает за группу пользователей, которым можно добавлять ссылку в комментариях. В нашем случае комментарии разрешено добавлять администраторам и главным редакторам.(дефолтные названия групп разумеется) Если захочешь чтобы другие группы тоже обходили это условие ссылок в комментариях, замени двойку на ID группы пользователей.
Можно не правя движок всё это использовать с помощью фильтра слов который является стандартной функцией DLE добавляешь слова скажем порно, секс, www, http:// .ru .com .net
Область поиска ставишь комментарии и профиль пользователя, а дальше выбирай сам или заменяй эти ссылки например на слово я спаммер забань меня, или просто ставь запрет...
Целую портянку написал) Надеюсь будет много + к карме ^^ спасибо за внимание
убрать теги, выводящие то, что не нужно, запретить использование ссылок, добавить каптчу. удалить пользователей-однодневок
Всем Спасибо За полезные Ответы
Или я что то не так понял или совсем мозг пропил, поправьте если что то не так
/language/Russian/website.lng и после строчки
'news_err_1' => "Вы ввели слишком длинное имя.",
Добавляем
'news_err_url' => "URL адреса сайтов, в поле "О себе" публиковать <b style="color:red;">ЗАПРЕЩЕНО</b>!",
'news_err_url_p' => "URL адреса сайтов, в поле "Подпись" публиковать <b style="color:red;">ЗАПРЕЩЕНО</b>!",
Выскакивает ошибка после добавления "О себе" или <b style="color:red;"> я так понял это проблема в " " нельзя их писать между самими собой
я прописал у себя так
'news_err_url' => "<p><b>URL адреса сайтов, в поле **О себе** Публиковать ЗАПРЕЩЕНО!</b><br/>",
'news_err_url_p' => "<b>URL адреса сайтов, в поле **Подпись** Публиковать ЗАПРЕЩЕНО!</b></p>",
и всё заработало только вот красным цветом так и не смог я выделить ЗАПРЕЩЕНО
d.j.starter, Всё дело в слешах
'news_err_url' => "URL адреса сайтов, в поле \"О себе\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!",
'news_err_url_p' => "URL адреса сайтов, в поле \"Подпись\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!",
Попробуй должно работать
Выше уже поправил для будущих поколений
Вот так теперь порядок и с цветом тоже, в результате для себя замутил вот так вот
'news_err_url' => "<p>URL адреса сайтов, в поле \"О себе\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!<br/>",
'news_err_url_p' => "URL адреса сайтов, в поле \"Подпись\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!</p>",
конечный итог получился как на скриншоте ниже
Спасибо за помощь ))
d.j.starter, Всегда пожалуйста
Возникла небольшая проблема, после добавления
if( $member_id['user_group'] > 4){
if (preg_match ("/href|url|http|www|\.ru|\.com|\.net|\.info|\.org/i", $_POST['comments']) || preg_match ("/href|url|http|www|\.ru|\.com|\.net|\.info|\.org/i", $_POST['name']))
{
$stop[] = "Извините, публиковать ссылки в комментариях запрещено!";
$CN_HALT = TRUE;
}}
Посетители не могут добавить не только ссылки но и картинки!
Как исправить? И как прописать несколько груп?
Как вариант, можно изменить адрес стрнаницы регистрации. Это временно избавит от регистраций через Хруммер.
Пользователь ZEOS подробно рассказывает как сделать это.
http://forum.dle-news.ru/index.php?showtopic=62184
От себя добавлю.
Очень-очень часто все ваши ответы вносятся вбазу Спам программ (ну если вы используете систему вопрос/ответ). Настоятельно рекомендую периодически заменять старые вопросы на новые. Не используйте вопросы типа "1+5=". Придумывайте свои, тематические вопросы... Только не перестарайтесь, чтобы какая-та блонда не вскипела
P.S. Для каждого сайта должна быть своя, уникальная система защиты от спама. Только тогда ваш сайт будет защищен от спама на 99%
Добавлено: 10.02.2013 01:43
ПафНутиЙ, По поводу однодневок согласен., в остальном - нет... Не нужно на сайте запрещать пользователям делиться, возможно, полезной информацией. Не все люди спамеры
Достаточно предотварить регистрацию спамеров и запретить вставлять ссылку там, где мы ее не найдем: профиль, подпись...
Axel, Вчера закрыл демо-сайт, на котором стояла чистая dle, без настроек чего либо, на домене третьего уровня, который делал для поверки модуля и забыл закрыть basic авторизацией.
Так там на 3 мес было зарегистрировано 180+ ботов, а вчера сбрутфорсили админку (пароль 123456789 не сложно ломать ), и всем этим ботам разослали спам на почту, добавили пару новостей на сайт и сунули в main.tpl какой то левый рекламный скрипт. слава богу этим ограничились или просто я вовремя спохватился.
Про запрет использования ссылок я имел ввиду только в профиле, и подписи, на сайте естественно необходимо разрешать.
ПафНутиЙ, Новичек, прочитав это, может сильно испугаться DLE
Я с такими последствиями еще не сталкивался. Да, у меня на сайте сейчас зарегано свыше 70000 посетителей, и понятное дело, что процентов 70-80 - спамеры. Но такое количество спамеров я собрал не много, ни мало, за 5-6 лет.
Благо появилсяхак для удаления однодневок. Правда минус в нем есть: нельзя на одну страницу выводить более 50 логинов.
Посетители не могут добавить не только ссылки но и картинки!
Картинки то не загружаются на сервер а указываются ссылкой на другой ресурс, да и зачем в комментариях картинки не пойму....
И как прописать несколько груп?
if( $member_id['user_group'] > 4) правь эту строку
KEFIR, В случае запрета URL в подписи наверное должно быть вот так, в противном случае, при добавлении ссылки в поле О себе выводится два предупреждения про Себя и про Подпись, а при добавлении ссылку в подпись не выводится ничего:
if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['signature']))
{
$stop .= $lang['news_err_url1'];
}
Благодарю за отличный пост! Все работает! Единственный хак, который я нашел в Нэте, и работает корректно. Но есть ньюанс - автоматическая регистрация такого пользователя все равно проходит, правда без ссылки (она удаляется автоматически).
Может есть у кого то проверенные способы изменения капчи или введения доп. вопросов, что бы отсеять таких клиентов, поскольку количество ботов при этом не уменьшилось (прут прямо сотнями за день).
или введения доп. вопросов, что бы отсеять таких клиентов
В DLE 9.7 есть такая возможность раздел - Вопросы и ответы для защиты от спама
Правда минус в нем есть: нельзя на одну страницу выводить более 50 логинов.
engine/inc/editusers.php ищем: $news_per_page = 50
меняем на нужное число, я себе поставил 1500 - быстро всех ботов удалил)
Chapman, к сожалению у меня версия ДЛЕ 9.3 Менять на другую не хочется, она лицензионная. Я в настройках ограничил регситрацию пользователей до 5 человек. Теперь никто не может зарегаться. Даже живые люди.
Стр.: 1 2
Надо войти или зарегиться
Форум АлаичЪ'а о SEO → Доработки и хаки для DLE → Борьба и защита от спама в DLE 9.7
Форум работает на PunBB