В нашем магазине 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>";
?>