Последнее время DLE подвергается массовым спам атакам. Это и регистрация ботов, и спам в комментариях. Каптча уже не помогает, спам программы становятся все более продвинутыми и легко считывают каптчи. Самый простой способ — просто поставить запрет на ссылки.
Как бороться с ботами описано тут, а со спамом в комментариях мы разберемся ниже.
Запрет на публикование ссылок в комментариях
Открываем engine/modules/addcomments.php и находим такой текст на 130+ строке
if( dle_strlen( $name, $config['charset'] ) > 20 ) {
$stop[] = $lang['news_err_1'];
$CN_HALT = TRUE;
Ниже добавляем:
//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
Настройка параметров
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 адреса сайтов в комментариях публиковать ЗАПРЕЩЕНО!";
Запрет комментирования с отключенным JavaScript
Отключенный JavaScript с высокой вероятностью указывает на то, что попытка оставить комментарий осуществляется из стороннего программного обеспечения и крайне редко — он действительно выключен в браузере
Добавить код ниже туда же, где добавляли код из примера выше, под него или над ним
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
С решением выше может возникнуть проблема, т.к. не каждый сервер умеет определять наличие JavaScript.
Хороший хак, спасибо. Вот если бы еще он пропускал ссылки на другие страницы ресурса (то есть, запрещал бы только исходящие ссылки), – цены б ему не было.
Вполне реально, чуть объемнее код будет. Правда моих знаний не хватит для такого кода(