DLE - Избавляемся от спама в комментариях

Последнее время DLE подвергается массовым спам атакам. Это и регистрация ботов, и спам в комментариях. Каптча уже не помогает, спам программы становятся все более продвинутыми и легко считывают каптчи. Самый простой способ - просто поставить запрет на ссылки.

Как бороться с ботами описано тут, а со спамом в комментариях мы разберемся ниже.

1. Запрет на публикование ссылок в комментариях

DLE - Избавляемся от спама в комментариях


1.1 Открываем: engine/modules/addcomments.php и находим такой текст на 130+ строке

if( dle_strlen( $name, $config['charset'] ) > 20 ) {
    $stop[] = $lang['news_err_1'];
    $CN_HALT = TRUE;

1.2 Ниже добавляем:
//antispamer
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[] = "URL адреса сайтов в комментариях публиковать ЗАПРЕЩЕНО!";
$CN_HALT = TRUE;
}
//end of antispam

1.3 Заменяем файлы и радуемся. Разбираем код. Две строки
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']

Дословно делают следующее: если в поле для комментариев или для имени комментатора находится данный текст, а именно - href|url|http|www|.ru|.com|.net|.info|.org, .то выводить следующий текст ошибки:
$stop[] = "URL адреса сайтов в комментариях публиковать ЗАПРЕЩЕНО!";

Можете отредактировать под себя текст, который будет выскакивать при спаме, а так же больше условий, для вывода блокировки


2. Запрет на публикацию комментариев с отключенным js

DLE - Избавляемся от спама в комментариях


2.1 Добавить этот код ниже или выше пункта выше
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) && empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
$stop[] = 'У вас отключен javascript или комментарий является спамом';
$CN_HALT = TRUE;
}

Автор: rocksmart

С решением выше может возникнуть проблема, т.к. не каждый сервер умеет определять наличие js. Что нам дает блокировка js? А то, что не будет рассылки комментариев через софт.
Понравилась статья "DLE - Избавляемся от спама в комментариях" из раздела Создание сайта » Решения для DLE? Подпишись на RSS. Будь в курсе всего происходящего на сайте
Комментариев: 2 •  Просмотров: 3468   Дата: 16-апр-2014, 16:14

Похожие статьи

Комментарии

#1   

Гости
Хороший хак, спасибо. Вот если бы еще он пропускал ссылки на другие страницы ресурса (то есть, запрещал бы только исходящие ссылки), - цены б ему не было.
(24 сентября 2013 20:57) • цитировать • •
#2 artemmian   

admin
Цитата: Лена
Хороший хак, спасибо. Вот если бы еще он пропускал ссылки на другие страницы ресурса (то есть, запрещал бы только исходящие ссылки), - цены б ему не было.


Вполне реально, чуть объемнее код будет. Правда моих знаний не хватит для такого кода(
(26 сентября 2013 01:50) • цитировать • •
b
i
u
s
|
left
center
right
|
emo
color
|
hide
quote
translit
© 2010-2015 artemmian.ru v 7.0: flexyflat tpl Designed by artstudios
Карта сайта HTMLКарта сайта XMLПравообладателям
Поисковый анализ сайта