Избавляемся от спама в обратной связи

Избавляемся от спама в обратной связи


Хак позволит избавиться от спама, рассылаемого через форму обратной связи в Dle. Расписывать много не буду , а в кратце опишу общее направление. Кому-то этого хватит, а кого-то может натолкнет написать полноценный модуль анти-спама.

Установка:
1. Регистрируемся на сервисе Akismet и получаем API ключ, который по сути бесплатный. Нас лишь просят оказать им финансовую, помощь размер которой устанавливаем мы сами, а это может быть и 0.

2. Дальше скачиваем библиотеку. Из неё нам пригодиться один файл Akismet.class.php, который находится по такому пути:
achingbrain-php5-akismet-0ded6a3.zip\achingbrain-php5-akismet-0ded6a3\src\main\php\net\achingbrain\Akismet.class.php


Где значение 0ded6a3 может быть любым другим. Копируем файл Akismet.class.php в папку движка /engine/classes/.

3. Открываем /engine/modules/feedback.php и сразу после:
if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

Вставляем:
require_once ENGINE_DIR . '/classes/Akismet.class.php';

4. Ищем, где у нас проходят валидацию POST запросы:
$subject = strip_tags( stripslashes( $_POST['subject'] ) );
$message = stripslashes( $_POST['message'] );
$recip = intval( $_POST['recip'] );

После этого вставляем:
$WordPressAPIKey = 'api-key';
$MyBlogURL = 'http://sait.ru/';
 
$akismet = new Akismet($MyBlogURL ,$WordPressAPIKey);
$akismet->setCommentAuthor($name);
$akismet->setCommentAuthorEmail($email);
$akismet->setCommentAuthorURL($subject);
$akismet->setCommentContent($message);
$akismet->setPermalink('http://sait.ru/');
 
if($akismet->isCommentSpam()){
 
  echo 'Akismet detected spam! Die fucking bot!';
  header("HTTP/1.1 804 Spam Detected");
    header ("location: http://sait.ru/");
  die();
}else{
   $message= $message;
}

Обращаем внимание на пометки api-key и sait.

Готово!

Для проверки работы хака, отлавливает спам или нет, можно вставить вместо:
echo 'Akismet detected spam! Die fucking bot!';
    header("HTTP/1.1 804 Spam Detected");
      header ("location: http://sait.ru/");
    die();

Cтроку:
$message= "Это сообщение спам! - ". $message;

Тогда сообщение содержащее спам не будет блокироваться, а будет приходить с пометкой - Это сообщение спам!

Соответственно по тому же принципу можно избавится от спама комментариев и тд и тп.

Версия DLE: 9.x

Добавить комментарий

Нам важно знать ваше мнение. Оставьте свой отзыв или ответ

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

Комментариев 0