Как предотвратить спам в Magento - PullRequest
4 голосов
/ 10 февраля 2012

Мы видели несколько обзоров спам-продуктов в нашем магазине Magento.Недавно я установил расширение Fontis reCaptcha, чтобы добавить форму reCaptcha в форму отзывов.Во всех моих тестах это прекрасно работает.«Настоящий» пользователь не может отправить форму, не заполнив часть reCaptcha.Однако это не решило проблему.Мы все еще получаем спам-отзывы.Интересно, что эти спам-обзоры также не имеют звездного рейтинга.Так или иначе, эти спам-боты могут отправлять обзор без всей необходимой информации и полностью обходить код reCaptcha.Любые мысли о том, как я могу это исправить?

Я также попытался создать простой скрипт, который бы отправлял поля формы для проверки на URL-адрес действия формы, пытаясь обойти логику (см. Ниже).Я либо не могу заставить его работать, либо это просто невозможно, но меня всегда перенаправляют на страницу «Пожалуйста, включите куки».

Проверка формы отправки теста

<code><?php
$curl_connection = curl_init('http://my.domain.com/review/product/post/id/2587/');

curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

$post_data = array();
$post_data['ratings[5]'] = '21';
$post_data['nickname'] = 'mynick';
$post_data['title'] = 'my title';
$post_data['detail'] = 'My Review Content';

$post_items = array();

foreach ( $post_data as $key => $value)
{
    $post_items[] = $key . '=' . $value;
}
$post_string = implode ('&', $post_items);

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

$result = curl_exec($curl_connection);

echo "Curl Info:<br><pre>";
print_r(curl_getinfo($curl_connection), true);


curl_close($curl_connection);

echo "<br>Result:<br>" . htmlentities($result) . "

";?>

Ответы [ 4 ]

0 голосов
/ 25 февраля 2012

Я разработал расширение для использования формы по умолчанию в Magento для отправки отзыва. Затем он отправляет контент Mollom, который похож на Akismet. Затем контент анализируется, и если контент интерпретируется как спам, я затем заставляю пользователя ввести код проверки на следующем шаге, чтобы дать «реальному» пользователю возможность убедиться, что он настоящий. Этот подход может разрешить спам, если служба не распознает его правильно, но на практике пользователям проще в использовании. Я не упаковал код вместе, но могу предложить его в Magento Connect, если обнаружу, что такой продукт достаточно востребован.

0 голосов
/ 11 февраля 2012

Попробуйте использовать наш бесплатный модуль ET_Reviewnotify .Имеет функцию, которая отклоняет спам-ботов без капчи.

0 голосов
/ 20 февраля 2012

В итоге я внедрил антиспам-код Akismet в расширение Fontis reCaptcha, и это, похоже, устранило все проверки спама. Так или иначе, боты могут обойти проверку reCaptcha. Я до сих пор не понял, как, но, думаю, это то, что отличает хакеров от таких парней, как я, просто пытающихся поддерживать работоспособность сайта ...

0 голосов
/ 10 февраля 2012

Проверка обзора Отправить проще с Varien_Http_Client (Zend_Http_Client)

include 'app/Mage.php';
Mage::app(); //for autoloading:)

$client = new Varien_Http_Client('http://your-url.com/review/product/post/id/2/');
$client->setMethod(Varien_Http_Client::POST);
$client->setParameterPost('nickname', 'test');
$client->setParameterPost('detail', 'detail');
$client->setParameterPost('title', 'test');
$client->setCookie('test');
$client->setCookieJar(true);
/** @var $response Zend_Http_Response */
$response = $client->request();

echo $response;

Без reCaptcha, он добавляет обзор.

С прямо сейчас скачанным модулем шрифтов reCaptcha (версия 2.3.1)возвращает ошибку с неверным reCaptcha.

Если вы используете ту же версию этого модуля и ту же версию Magento (1.6.2.0), я бы рассмотрел поиск в журнале сервера для «злого» запроса POST и исследовал точку входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...