So sichern Sie Formulare vor Spam-Bot


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>

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?


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.