• Автор:

    Flesha
  • Добавлено:

    мар 16, 2013
  • Комментариев:

    0
  • Просмотров:

    1716

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

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

Хак позволит избавиться от спама, рассылаемого через форму обратной связи в 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
Автора: mediaent.org
Вернуться
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.