Как предотвратить спам-отзывы в Magento

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

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

Проверка представления формы представления

<?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) . "</pre><br>"; ?> 

Тестирование Обзор Отправить проще с 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 fontis (версия 2.3.1), он возвращает ошибку с неправильной reCaptcha.

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

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

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

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