Можно ли защититься от спамеров? Можно! Только нужна комплексная защита. В этой заметке расскажу как запретить комментарии на сайте DLE, в которых используют такие слова как «виагра», «порно» и другие часто употребляемые спамерами. Или например, использование ссылки в формате «http://».
Я пришел к выводу, что данный способ необходим наряду с запретом комментариев на латинице. После того как был установлен данный хак количество левых комментариев свелось к нулю. Уверен, что ситуация не измениться. А если появятся новые «сверх популярные» слова, то достаточно дополнить их в список запрещенных, и проблема решена!
Итак, для установки хака открываем файл engine/modules/addcomments.php. Ищем запись:
1 2 3 4 5 6 7 |
if( dle_strlen( $name, $config['charset'] ) > 20 ) { $stop[] = $lang['news_err_1']; $CN_HALT = TRUE; } |
if( dle_strlen( $name, $config['charset'] ) > 20 ) { может отличаться, например вот так if( strlen( $name ) > 50 ) {
Нашли и выше вставляем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
$aFilterComments = array('секс', 'порно', 'porn', 'http', 'рассылк', 'объявлени', 'XRumer', 'weight', 'fat', 'Zenslim', 'advertising', 'buy', 'хрумер', 'виагра'); //здесь прописываем все слова, которые чаще всего употребляют при спаме foreach($aFilterComments as $sWord) { if (stripos($_POST['comments'],$sWord)!==false) $bStopSpam = true; } $aFilterNames = array('Download'); foreach($aFilterNames as $sName) { if ($name==$sName) $bStopSpam = true; } if ($bStopSpam === true) { $stop[] = 'Сработал анти-спам фильтр. Пожалуйста, прекратите!'; $CN_HALT = true; } |
Вот и всё! Данный способ как самосвал вынесет весь хлам из сайта. При этом пользователи сайта не заметят никаких изменений или неудобств.