Como proteger o formulário do bot de spam

9

Na minha loja Magento, tenho um formulário, que envia as informações por e-mail para mim e, recentemente, houve muito spam desse formulário (70 desde ontem).

É possível obter um formulário seguro no magento, sem usar o CAPTHA? :)

Patrick Knudsen
fonte
Esta resposta pode ser útil para você. -> magento.stackexchange.com/questions/103808/…
Vishwas Soni 2/16

Respostas:

15

Eu tive o mesmo problema e resolvi instalando esta extensão do magento-hackaton: https://github.com/magento-hackathon/HoneySpam

Esta extensão Magento adiciona um campo oculto com JavaScript ao registro do cliente e ao formulário de revisão do produto que se parece com o campo URL de um formulário de comentário do Wordpress. Se esse campo for preenchido e o formulário for enviado, aparecerá uma mensagem de erro e nada será salvo.

Há também uma verificação se este formulário é transmitido muito rapidamente; um humano normalmente leva alguns segundos ou mais.

Você pode ativar e desativar as funcionalidades ou definir o tempo necessário para transmitir esses formulários no Magento Admin Backend.

Recém-adicionado: verificação de Regex em todos os campos de entrada para determinar um índice flexível para o nível de spam. Não é a coisa mais precisa, mas pode impedir o spam low-end ("spam de banda larga"). Você também pode ativar / desativar esse recurso no back-end e definir um nível máximo de confiança no índice de spam.

Foi assim que adicionei ao meu formulário:

No meu arquivo .phtml do formulário, adicionei esta linha:

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

Isso adicionará o campo extra declarado em 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
fonte
É um formulário personalizado, e eu posso se que a extensão só é bom para formas magentomade
Patrick Knudsen
Na verdade, não é um formulário personalizado; ele adiciona um campo extra aos formulários desejados, para que você possa usar essa extensão para qualquer formulário que desejar. Você só precisa incluir o arquivo js lá e é isso.
Lloiacono 02/03
4
Eu aprovo esta extensão. Eu usei e ele fez maravilhas. Ele não oferece 100% de spam grátis, mas faz um trabalho maravilhoso com um esforço mínimo.
Marius
meu formulário está na página do meu produto, como incluo os arquivos js lá? é o arquivo view.phtml.
Patrick Knudsen
obteve a aprovação @ Marius. agora você deve instalar a extensão.
Qaisar Satti 02/03
0

O código adicionado para o boletim está incorreto. Eu tenho metade do código correto, o problema continua sendo que você só pode ocultar um formulário por vez com o código document.observe. Temos duas caixas de boletim informativo e os formulários padrão de revisão / contato e isso não funciona.

Esta é a parte correta para o boletim de rodapé padrão do magento install footer.

    <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>

Alguém a solução completa?

Kim K.
fonte
Confuso um pouco com ela, devo adicionar o código acima ao newsletter.xml em app / design / frontend / default / mytheme / layout? Como posso ver se está corrigido instalado?
Hln