Защищаем сайт от спама с помощью Akismet

В данном уроке пойдет речь о защите сервера от спама. Что такое спам? Спам - сообщение, которое не соответствует содержанию страницы. Обычно такие сообщения содержат рекламу и ссылку на ресурс в сети. Первая линия обороны от спама - капча. Но спаммеры постоянно ищут способы обхода первой линии (и очень часто такие поиски завершаются успешно). Поэтому оборона должна иметь несколько эшелонов. Вторым может стать веб сервис (в нашем случае Akismet).

Akismet - отличный автоматизированный веб сервис для защиты веб сервера от спама.

Первое, что надо сделать - зарегистрироваться на сайте Akismet и получить ключ API. Затем перейти на страницу с плагинами и библиотеками, выбрать и загрузить класс PHP 5 Akismet. С его помощью можно защитить практически любой сайт от спама посредством веб-сервиса Akismet.

 

Ниже приводится простой  пример использования сервиса Akismet для проверки комментария на соответствие критериям оценки спама. Создается простая страница с формой, информация из которой проверяется на сервисе Akismet. После проверки ниже формы выводится информационное сообщение и отладочная информация.

Для работы кода нужно изменить значения '__ВАШ_КЛЮЧ_API_AKISMET__', '__АДРЕС_ВАШЕГО_САЙТА__' и '__ИМЯ_ПОЛЬЗОВАТЕЛЯ_AKISMET__' на ваши.

<?

require_once ('classes/Akismet.class.php');

class MySpamProtection {

    // Перменные
    var $sMyAkismetKey;
    var $sWebsiteUrl;
    var $sAuthName;
    var $sAuthEml;
    var $sAuthUrl;
    var $oAkismet;

    // Конструктор
    public function MySpamProtection() {
        // Устанавливаем необходимые значения для перменных
        $this->sMyAkismetKey = '__ВАШ_КЛЮЧ_API_AKISMET__';
        $this->sWebsiteUrl = '__АДРЕС_ВАШЕГО_САЙТА__';
        $this->sAuthName = '__ИМЯ_ПОЛЬЗОВАТЕЛЯ_AKISMET__';
        $this->sAuthEml = '';
        $this->sAuthUrl = '';

        // Нинициализация Akismet
        $this->oAkismet = new Akismet($this->sWebsiteUrl ,$this->sMyAkismetKey);
        $this->oAkismet->setCommentAuthor($this->sAuthName);
        $this->oAkismet->setCommentAuthorEmail($this->sAuthEml);
        $this->oAkismet->setCommentAuthorURL($this->sAuthUrl);
    }

    public function isSpam($s) {
        if (! $this->oAkismet) return false;

        $this->oAkismet->setCommentContent($s);
        return $this->oAkismet->isCommentSpam();
    }
}


echo <<<EOF
<style type="text/css">
form div {
    margin:10px;
}
form label {
    width:90px;
    float:left;
    display:block;
}
</style>
<form action="" method="post">
    <div><label for="author">Автор</label><input id="author" name="author" type="text" value="" /></div>
    <div><label for="comment">Комментарий</label><textarea id="comment" name="comment" cols="20" rows="4"></textarea></div>
    <div><input name="submit" type="submit" value="Отправить" /></div>
</form>
EOF;

if ($_POST) {
    // Выводим отладочную информацию
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';

    // Получаем отправленную информацию
    $sPostAuthor = $_POST['author'];
    $sCommentComment = $_POST['comment'];

    // Проверка на спам
    $oMySpamProtection = new MySpamProtection();
    $sAuthorCheck = ($oMySpamProtection->isSpam($sPostAuthor)) ? ' "Автор" отмечен как спам' : '"Автор" НЕ ИМЕЕТ отметки как спам';
    $sCommentCheck = ($oMySpamProtection->isSpam($sCommentComment)) ? ' "Комментарий" отмечен как спам' : '"Комментарий" НЕ ИМЕЕТ отметки как спам';

    echo $sAuthorCheck . '<br />' . $sCommentCheck;
}

?>
<div style="bottom:0;position:fixed;">
    <hr style="clear:both;" />
    <h4>
        <a href="http://www.ruseller.com/" target="_blank">Материалы сайта RUSELLER.COM</a>
    </h4>
</div>

Класс Akismet.class.php имеет переведенные комментарии в коде.


Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/m8wtCF6nUMU/lessons.php

Читать комменты и комментировать

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



Защитный код
Обновить

Защищаем сайт от спама с помощью Akismet | | 2012-06-19 11:57:59 | | Статьи Web-мастеру | | В данном уроке пойдет речь о защите сервера от спама. Что такое спам? Спам - сообщение, которое не соответствует содержанию страницы. Обычно такие сообщения содержат рекламу и ссылку на ресурс в сети | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: