So sichern Sie Formulare vor Spam-Bot

9

In meinem Magento-Shop habe ich ein Formular, das mir die Informationen per E-Mail sendet, und in letzter Zeit hat es eine Menge Spam von diesem Formular gegeben (70 seit gestern).

Ist es möglich, ohne CAPTHA eine sichere Form in Magento zu erhalten? :) :)

Patrick Knudsen
quelle
Diese Antwort könnte für Sie hilfreich sein. -> magento.stackexchange.com/questions/103808/…
Vishwas Soni

Antworten:

15

Ich hatte das gleiche Problem und habe es gelöst, indem ich diese Erweiterung vom Magento-Hackaton installiert habe: https://github.com/magento-hackathon/HoneySpam

Diese Magento-Erweiterung fügt dem Kundenregister und dem Produktüberprüfungsformular, das wie das URL-Feld eines Wordpress-Kommentarformulars aussieht, ein mit JavaScript ausgeblendetes Feld hinzu. Wenn dieses Feld ausgefüllt wird und das Formular gesendet wird, wird eine Fehlermeldung angezeigt und nichts wird gespeichert.

Es wird auch geprüft, ob dieses Formular zu schnell übertragen wird. Ein Mensch benötigt normalerweise einige Sekunden oder länger.

Sie können die Funktionen aktivieren und deaktivieren oder festlegen, wie lange die Übertragung dieser Formulare im Magento Admin Backend dauern soll.

Neu hinzugefügt: Regex-Überprüfung aller Eingabefelder, um einen losen Index für die Spam-Ebene zu ermitteln. Es ist überhaupt nicht die genaueste Sache, aber es kann den Low-End-Spam ("Breitband-Spam") verhindern. Sie können diese Funktion auch im Backend aktivieren / deaktivieren und eine maximale Vertrauensstufe für den Spam-Index festlegen.

So habe ich es meinem Formular hinzugefügt:

In meiner .phtml-Formulardatei habe ich folgende Zeile hinzugefügt:

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

Dadurch wird das zusätzliche Feld hinzugefügt, das in app / design / frontend / base / default / layout / honeyspam.xml deklariert ist:

<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
quelle
Es ist eine benutzerdefinierte Form, und ich kann sehen, dass die Erweiterung nur für magentomade Formen gut ist
Patrick Knudsen
Nicht wirklich, ist kein benutzerdefiniertes Formular. Es fügt den gewünschten Formularen ein zusätzliches Feld hinzu, sodass Sie diese Erweiterung für jedes gewünschte Formular verwenden können. Sie müssen nur die js-Datei dort einfügen und das wars.
lloiacono
4
Ich bin mit dieser Erweiterung einverstanden. Ich habe es benutzt und es hat Wunder gewirkt. Sie werden nicht 100% frei von Spam sein, aber es macht einen wunderbaren Job mit minimalem Aufwand.
Marius
Mein Formular befindet sich auf meiner Produktseite. Wie füge ich die JS-Dateien dort ein? Es ist die Datei view.phtml.
Patrick Knudsen
hat die @ Marius-Genehmigung erhalten. Jetzt müssen Sie die Erweiterung installieren.
Qaisar Satti
0

Der hinzugefügte Code für den Newsletter ist falsch. Ich habe die Hälfte des richtigen Codes. Das Problem bleibt, dass Sie mit document.observe-Code jeweils nur ein Formular ausblenden können. Wir haben 2 Newsletter-Boxen und die Standard-Überprüfungs- / Kontaktformulare und das funktioniert nicht.

Dies ist jedoch der richtige Teil für den standardmäßigen Magento-Installationsfußzeilen-Newsletter.

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

Hat jemand die komplette Lösung?

Kim K.
quelle
Ich verwirre sie nur ein bisschen. Soll ich den obigen Code zu newsletter.xml in app / design / frontend / default / mytheme / layout hinzufügen? Wie kann ich sehen, dass es installiert installiert ist?
Am