Как обезопасить форму от спам-бота

9

В моем магазине Magento у меня есть форма, которая отправляет мне информацию по электронной почте, и недавно в этой форме было много спама (70 со вчерашнего дня).

Возможно ли получить безопасную форму в magento без использования CAPTHA? :)

Патрик Кнудсен
источник
Этот ответ может быть полезен для вас. -> magento.stackexchange.com/questions/103808/…
Вишвас Сони

Ответы:

15

У меня была та же проблема, и я решил ее, установив это расширение из magento-hackaton: https://github.com/magento-hackathon/HoneySpam

Это расширение Magento добавляет поле, которое скрыто с помощью JavaScript, в реестр клиентов и форму обзора продукта, которая выглядит как поле URL формы комментария Wordpress. Если это поле заполнено и Форма отправлена, появляется сообщение об ошибке, и ничего не будет сохранено.

Существует также проверка, если эта форма передается слишком быстро, человеку обычно требуется пара секунд или больше.

Вы можете включать и отключать функции или устанавливать время, необходимое для передачи этих форм, в серверной части Magento Admin.

Недавно добавлено: проверка регулярных выражений во всех полях ввода, чтобы определить свободный индекс для уровня спама. Это не самая точная вещь вообще, но она может предотвратить спам низкого уровня ("широкополосный спам"). Вы также можете включить / отключить эту функцию в бэкэнде и установить максимальный уровень доверия индекса спама.

Вот как я добавил его в свою форму:

В моем файле .phtml формы я добавил эту строку:

<?php echo $this->getBlockHtml('contacts.form.fields.before') ?>

Это добавит дополнительное поле, объявленное в app / design / frontend / base / default / layout / honeyspam.xml:

<default>
    <update handle="honeypot"/>
    <reference name="footer_newsletter">
        <block type="core/text_list" name="contacts.form.fields.before" as="form_fields_before" translate="label">
            <block type="hackathon_honeyspam/honeypot" name="honeyspam.honeypot"
                   template="hackathon/honeyspam/honeypot.phtml"/>
        </block>
    </reference>
</default>

<contacts_index_index>
    <update handle="honeypot"/>
    <reference name="contactForm">
        <block type="core/text_list" name="contacts.form.fields.before" as="form_fields_before" translate="label">
            <block type="hackathon_honeyspam/honeypot" name="honeyspam.honeypot"
                   template="hackathon/honeyspam/honeypot.phtml"/>
        </block>
    </reference>
</contacts_index_index>
lloiacono
источник
Это пользовательская форма, и я могу видеть, что расширение подходит только для magentomade форм
Патрик Кнудсен
на самом деле это не пользовательская форма, она добавляет дополнительное поле к формам, которые вы хотите, так что вы можете использовать это расширение для любой формы, которую вы хотите. Вам просто нужно включить туда файл js и все.
Илоаконо
4
Я одобряю это расширение. Я использовал это, и это сделало чудеса. Это не сделает вас на 100% свободным от спама, но это сделает замечательную работу с минимальными усилиями.
Мариус
моя форма находится на моей странице продукта, как мне включить туда файлы js? это файл view.phtml.
Патрик Кнудсен
получил одобрение @Marius. Теперь вы должны установить расширение.
Кайсар Сатти
0

Неверный код для рассылки. У меня есть половина правильного кода, проблема остается в том, что вы можете сделать только одну форму скрытой за один раз с кодом document.observe. У нас есть 2 коробки для рассылок и стандартные формы обзора / контактов, и это не работает.

Это правильная часть для бюллетеня по умолчанию для установки нижнего колонтитула magento.

    <default>
    <update handle="honeypot"/>
    <reference name="footer.newsletter">
        <block type="core/text_list" name="newsletter.form.fields.before" as="form_fields_before" translate="label">
            <block type="hackathon_honeyspam/honeypot" name="honeyspam.honeypot"
                   template="hackathon/honeyspam/honeypot.phtml"/>
        </block>
    </reference>
</default>

У кого-нибудь есть полное решение?

Ким К.
источник
Я просто немного ее оспариваю. Должен ли я добавить приведенный выше код в файл newsletter.xml в app / design / frontend / default / mytheme / layout? Как я могу видеть это исправлено установлено?
ХЛНЫ