1

We are seeing more and more spam in product reviews.

Is there a way to enable a Magento default spam killer. Or can we make something like " 3 plus 7 =" enter in box?

I have tried some recaptcha ones. But not all are compliant with Magento 1.8.1 and I have to start digging into template code.

0

There are several modules to achieve this. This one is free and seems to have some good reviews on Magento Connect.

0

Here is one extension using Akismet for spam filtering:

http://www.mgt-commerce.com/magento-akismet-spam-protection-extension.html

0

We started using nobots extension from fishpig - it adds dummy fields that bots fill out. But a user would not. Seems to work so far

0

Instead of directing you to some lame module why dont you just do it yourself as a sort of programming exhibition?

Common ways to fight spam:

Create an invisible element in your form. Users cannot click and enter data, bots will simply fill in everything. Check in the backend if that piece of data is filled in. If it is, reject it! Do not issue a response as this is definitely spam (and you don't want to let spammers know you're onto their game).

You could also filter any and all URLs that are appended to your reviews.

Also, I think google just released a new version of Captcha that you could check out. I haven't seen anything on SE about it yet though.

0

Solution for Magento 2(.1.3):

Copy form.phtml from /vendor/magento/module-review/view/frontend/templates and place in /app/design/frontend/VendorName/TemplateName/Magento_Review/templates/

Search for:

<div class="actions-toolbar review-form-actions">
    <div class="primary actions-primary">
        <button type="submit" class="action submit primary"><span><?php /* @escapeNotVerified */ echo __('Submit Review') ?></span></button>
    </div>
</div>

And Replace with:

<div class="actions-toolbar review-form-actions">
     <div class="secondary actions-secondary">
        <input id="safetycheck" type="text" placeholder="Safetycheck: 3 + 5 = ?">
    </div>
    <div class="primary actions-primary">
        <button type="submit" class="action submit primary"><span><?php /* @escapeNotVerified */ echo __('Submit Review') ?></span></button>
    </div>
    <script>
    var input = document.getElementById("safetycheck");
    document.getElementsByClassName("action submit primary")[0].disabled = true;
    input.addEventListener('input', function()
    {
        if(input.value == 8){           
            document.getElementsByClassName("action submit primary")[0].disabled = false;
        }
    });
    </script>
</div>

With this you have created an input field which disables your "Submit" button on your review form unitl you will enter "8" in the "Safetycheck"-input field.

This requires the basic use math for your customers and the bots that try to spam your shop.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.