Comment sécuriser le formulaire contre le spam bot

9

Dans ma boutique Magento, j'ai un formulaire, qui m'envoie les informations par e-mail, et récemment il y a eu beaucoup de spam à partir de ce formulaire (70 depuis hier).

Est-il possible d'obtenir un formulaire sécurisé dans magento, sans utiliser CAPTHA? :)

Patrick Knudsen
la source
Cette réponse pourrait vous être utile. -> magento.stackexchange.com/questions/103808/…
Vishwas Soni

Réponses:

15

J'ai eu le même problème et je l'ai résolu en installant cette extension depuis le magento-hackaton: https://github.com/magento-hackathon/HoneySpam

Cette extension Magento ajoute un champ qui est masqué avec JavaScript au registre des clients et au formulaire d'évaluation du produit qui ressemble au champ URL d'un formulaire de commentaire Wordpress. Si ce champ est rempli et que le formulaire est envoyé, un message d'erreur apparaît et rien ne sera enregistré.

Il y a aussi une vérification si cette forme est transmise trop rapidement, un humain prend normalement quelques secondes ou plus.

Vous pouvez activer et désactiver les fonctionnalités ou définir le temps nécessaire pour transmettre ces formulaires dans le backend d'administration Magento.

Fraîchement ajouté: Regex-contrôle sur tous les champs d'entrée pour déterminer un index lâche pour le niveau de spam. Ce n'est pas du tout la chose la plus précise, mais cela peut empêcher le spam bas de gamme ("spam à large bande"). Vous pouvez également activer / désactiver cette fonctionnalité dans le backend et définir un niveau de confiance d'index de spam maximal.

Voici comment je l'ai ajouté à mon formulaire:

Sur mon formulaire .phtml, j'ai ajouté cette ligne:

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

Cela ajoutera le champ supplémentaire déclaré dans 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
la source
C'est un formulaire personnalisé, et je peux voir que cette extension n'est bonne que pour les formulaires magentomade
Patrick Knudsen
pas vraiment, n'est pas un formulaire personnalisé, il ajoute un champ supplémentaire aux formulaires que vous souhaitez, vous pouvez donc utiliser cette extension pour n'importe quel formulaire que vous souhaitez. Vous avez juste besoin d'y inclure le fichier js et c'est tout.
lloiacono
4
J'approuve cette extension. Je l'ai utilisé et il a fait des merveilles. Il ne vous procurera pas 100% de spam, mais il fait un excellent travail avec un minimum d'effort.
Marius
mon formulaire est sur ma page produit, comment puis-je y inclure les fichiers js? c'est le fichier view.phtml.
Patrick Knudsen
a obtenu l'approbation de @Marius. vous devez maintenant installer l'extension.
Qaisar Satti
0

Le code ajouté pour la newsletter est incorrect. J'ai la moitié du code correct, le problème reste que vous ne pouvez masquer qu'un seul formulaire à la fois avec le code document.observe. Nous avons 2 boîtes de newsletter et les formulaires standard de révision / contact et cela ne fonctionne pas.

C'est la bonne partie de la newsletter par défaut du pied de page d'installation de 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>

Quelqu'un la solution complète?

Kim K.
la source
Je la confond un peu, dois-je ajouter le code ci-dessus à newsletter.xml dans app / design / frontend / default / mytheme / layout? Comment puis-je voir qu'il est corrigé installé?
hln