Jump to content

Captcha Kontaktformular


jschm
 Share

Recommended Posts

Hi zusammen,

der Titel sagt schon alles - ich würde (aufgrund einer aktuellen SPAM Welle) einen Captcha ins Kontaktformular einbauen.
Habe bisher aber nur "alte" Beiträge gefunden bzw ein kostenpflichtiges Modul. 

Mir ist etwas schleierhaft wie so eine Basisfunktion nicht einfach "nachzurüsten" ist, oder gibts doch eine schöne Lösung?

Danke vorab!

Share this post


Link to post
Share on other sites

21 minutes ago, Whiley said:

Da könntest du nach Google Anleitung vorgehen und den Code eingeben oder einfacher das kostenlose eicaptcha installieren:

Das findest du bei github oder du nimmst die hier angehängte installierfähige Version:

eicaptcha.zip

 

Grüsse
Whiley

 

Welche Google Anleitung mit Code meinst Du denn?

Mit eicaptcha hat es jetzt aber geklappt, dachte das wäre mittlerweile veraltet, dank dir!

Share this post


Link to post
Share on other sites

Also dann mal ins Detail! Das Modul Eicaptcha, dass @Whiley empfohlen hat, wirkt zwar auch bei Produktkommentaren, aber leider nicht beim Kontaktformular!

Wenn man das invisible Recaptcha von Google für Anmelde- und Kontaktformular nutzen will, dann muss folgendes passieren:

  1. Aufruf des bereits von @Shad86 genannten Links: https://www.google.com/recaptcha/intro/invisible.html
  2. Oben rechts auf den Button Get Recaptcha klicken und den Anweisungen folgen.
  3. Die Auswahl treffen, ob das Recaptcha überhaupt angezeigt werden soll oder nicht.
  4. Den erzeugten Websiteschlüssel kopieren.
  5. Anschließend müssen folgende Dateien angepasst werden:
    1. Frontcontroller (am besten via Override):
      1. AuthController.php
      2. ContactController.php
        Beide Overrides sind in der Zip-Datei unten enthalten. Falls bereits Overrides einer der Dateien im Verzeichnis /override/controllers/front existieren, dürfen diese nicht überschrieben, sondern nur um die hier übermittelte Funktion ergänzt werden.
         
    2. Template-Dateien:
      1. authentication.tpl
      2. contact-form.tpl
  6. Für das Standard-Template sind bereits angepasste Dateien in der folgenden Zip-Datei enthalten. Für eigene Templates muss an der entsprechenden Stelle der folgende Code eingefügt werden. Hierhin wird der Websiteschlüssel kopiert (rot markiert!):
                    <!-- Add Google Recaptcha -->
                    <div>
                     <script src='https://www.google.com/recaptcha/api.js'></script>
                    <div class="g-recaptcha" data-sitekey="DeinPersönlicherGoogle-Key"></div>
                    </div>
                    <!-- end -->
  7. Das Sahnehäubchen wäre dann noch, die neue Fehlermeldung gleich einzudeutschen, die ihr unter
    Lokalisierung --> Übersetzungen --> Fehlermeldungen

    findet: Captcha Error --> Bitte bestätigen Sie, dass Sie "keine Roboter" sind (oder so etwas)
    und wahrscheinlich auch die Meldung darunter, die nun eventuell einen anderen Hashcode bekommen hat.

Hier habe ich alle Modifikation als Zip-Datei vorbereitet: Google recaptcha for PrestaShop 1.6.zip

 

Falls jemand PrestaShop 1.5 nutzt, so kann er die Änderungen ebenfalls in die entsprechenden Dateien einbauen, sollte aber auf die leichten Unterschiede in den Controllern achten.

Share this post


Link to post
Share on other sites

Am 16.2.2018 um 6:04 PM schrieb eleazar :

Das Modul Eicaptcha, dass @Whiley empfohlen hat, wirkt zwar auch bei Produktkommentaren, aber leider nicht beim Kontaktformular!

Das Modul eiCaptcha wirkt (von mir getestet mit PS 1.6.1.18 und TB 1.03 ) u.a. auch beim Kontaktformular:

https://github.com/nenes25/eicaptcha/blob/master/README.md

Die neueste Version gibt es hier.:

https://github.com/nenes25/eicaptcha

Das Modul ist ausgelegt für Google reCAPTCHA version 2 "Ich bin kein Roboter"

Grüsse
Whiley

 

 

 

Share this post


Link to post
Share on other sites

On 15.2.2018 at 7:49 PM, Whiley said:

Da könntest du nach Google Anleitung vorgehen und den Code eingeben oder einfacher das kostenlose eicaptcha installieren:

Das findest du bei github oder du nimmst die hier angehängte installierfähige Version:

eicaptcha.zip

 

Grüsse
Whiley

 

Habe die hier verlinkte Version genommen, es kommt deutlich weniger SPAM durch, aber doch noch ein paar Mails pro Tag. Evtl. war das ja eine alte Version? 
Muss ich das veraltete Modul deaktivieren, vom FTP löschen, das neue hochladen und dann wieder aktivieren?

Share this post


Link to post
Share on other sites

jschm, arbeitest du mit der Version "Ich bin kein Roboter" und funktioniert der Schutz wenn du das selbst testest im Kontaktformular?

Du kannst das Modul im Backoffice deaktivieren, deinstallieren und die neuere Version 0.4.12 neu installieren.

Moderne Spamtools sind aber in der Lage captchas zu umgehen indem sie menschliches Verhalten beim Beschreiben der Formulare nachahmen.

Wenn du es verantworten kannst auf Kunden aus Rußland zu verzichten, könntest du natürlich die Endekennung ".ru" bei den email-Eingaben sperren, ich habe das gerade so bei mehreren Shops gemacht, seit 24 Stunden ist da jetzt Ruhe.

Grüsse
Whiley

Share this post


Link to post
Share on other sites

Vielen Dank an alle. Habe jetzt nochmal die neuste Version installiert und aktiviert mit "reCaptcha". Bei der letzten Version kamen nach wie vor pro Tag einige Nachrichten durch. 

Hoffe es geht jetzt auf 0 runter :-)

Share this post


Link to post
Share on other sites

Habe es auch erfolgreich installiert. Vielen Dank an euch!

Für ein paar Tage war Ruhe, nun bekomme ich hin und wieder doch wieder Spams durch das Kontaktformular. Die Spammer scheinen leider recht lernfähig zu sein. :-/

 

edit: während ich dies hier schreibe, *zack* gleich vier Nachrichten erhalten. Es scheint doch wieder mehr zu werden. UUUaaaahh.....:-(

Edited by bleumel (see edit history)

Share this post


Link to post
Share on other sites

Und bei dir ist das Recaptcha von Google in Version 2 installiert? Und hast du bei dir mal getestet ob sich das Formular auch wirklich nicht abschicken lässt wenn der Captcha nicht ausgefüllt ist? Bei uns ist seit einführung ruhe.

Share this post


Link to post
Share on other sites

Vielleicht sollten sich diejenigen Nutzer von 1.6, die trotz Captcha-Modul weiterhin Spam übers Kontaktformular erhalten, überlegen, auf mindestens Version 1.6.1.17 upzugraden. Denn ab dieser Version ist ein Honigtöpfchen in Form eines Hidden Fields eingebaut. Man kann es aber auch selbst "nachrüsten", wenn man sich ansieht, was die Programmiererin Hibatallah Aouadni hier eingebaut hat: https://github.com/PrestaShop/PrestaShop/pull/8168/commits/1482acec6e91a6e694b9638d42ac69be391dd7fc

Erweitert werden müssen die beiden Funktion postProcess() und initContent() in /controllers/front/ContactController.php; außerdem die Datei contact-form.tpl des Templates.

Wer PrestaShop 1.5 einsetzt, kann diese Sicherheitshürde ebenfalls einbauen, sollte aber auf die geänderte Syntax genau achten. Falls Interesse besteht, kann ich die Änderungen für 1.5 hier noch posten.

Share this post


Link to post
Share on other sites

Am 28.2.2018 um 9:07 AM schrieb Shad86:

Und bei dir ist das Recaptcha von Google in Version 2 installiert? Und hast du bei dir mal getestet ob sich das Formular auch wirklich nicht abschicken lässt wenn der Captcha nicht ausgefüllt ist? Bei uns ist seit einführung ruhe.

Version 0.4.12 steht da, letzte Version die o.g. wurde. Oder wo finde ich eine andere Versionsangabe?

Ja, Formular lässt sich ohne Captcha in keiner der beiden Shopsprachen abschicken. Habe ich mehrfach getestet.

Bin auf 1.6.1.13 und werde dann wohl mal auf 1.6.1.17 gehen...

 

Edit: Spam kommen heute Nachmittag wieder im Sekundentakt rein....

Edited by bleumel (see edit history)

Share this post


Link to post
Share on other sites

vor 2 Stunden schrieb eleazar :

 Hibatallah Aouadni hier eingebaut hat: https://github.com/PrestaShop/PrestaShop/pull/8168/commits/1482acec6e91a6e694b9638d42ac69be391dd7fc

Erweitert werden müssen die beiden Funktion postProcess() und initContent() in /controllers/front/ContactController.php; außerdem die Datei contact-form.tpl des Templates.

 

Danke, eleazar!

Kurze Frage:

Muss man den genannten Code in den Dateien nur  hinzufügen oder etwas anderes rausnehmen oder ändern?

Share this post


Link to post
Share on other sites

Eigentlich wird überall nur etwas ergänzt. Achte aber auch auf das zusätzliche Komma in der Funktion initContent

'message' => html_entity_decode(Tools::getValue('message')),

Dagegen kann das Komma in der Folgezeile entfallen.:

 

Share this post


Link to post
Share on other sites

Sorry, was genau wird denn ergänzt? Ich bin nicht geübt im lesen der auf Github dargestellten Inhalte :-/

Einige zeilen werden aufgeklappt oder zugeklappt.

Code kann ich zwar erkennen, nicht aber genau was davon ergänzt werden soll. 

Share this post


Link to post
Share on other sites

vor 21 Stunden schrieb eleazar :

lade dir doch einfach die entsprechende Datei aus 1.6.1.17 odr 1.6.1.18 per FTP.

 

ähm, ja, FTP is klar, aber wo kann ich mir denn die Datei dann laden? Eigenen Testshop in der Version aufmachen? Sorry, dass ich das nicht auf Anhieb blicke.

Share this post


Link to post
Share on other sites

O Mann! Und wo hast du dir die Zip-Datei mit deinem PrestaShop hergeholt? Doch wohl auch von der Downloadseite, oder? Guck doch mal oben rechts im Forum. Siehst du dort den Button Get PrestaShop? :rolleyes:

Da hangelst du dich durch, bis du hier anlangst: https://www.prestashop.com/en/previous-versions

Dann wählst du 1.6.1.17 oder 1.6.1.18.

Die beiden Dateien entnimmst du der Zip-Datei und überschreibst damit via FTP deine bisherigen.

 

  • Like 1

Share this post


Link to post
Share on other sites

Ach so, hihi, ja, nein, ich hatte mir Webspace mit Vorinstallierter Version zugelegt und Versionsupdates im Backoffice gemacht.

Daher kein Bewusstsein für den eigentlichen Shop download. So musste ich fragen.  

Daaanke! :-)

Share this post


Link to post
Share on other sites

On 1.3.2018 at 4:42 PM, eleazar  said:

Erweitert werden müssen die beiden Funktion postProcess() und initContent() in /controllers/front/ContactController.php; außerdem die Datei contact-form.tpl des Templates.

So ich hab das jetzt mal angepasst. Die letzten 2 Tage kamen dutzende SPAM Mails, trotz funktionierendem google captcha (bei manuellem Test).

Hoffe der honeypot aus der 1.6.1.18  hilft.

Edited by jschm (see edit history)

Share this post


Link to post
Share on other sites

Erledigt.

Dateien ContactController.php und contact-form.tpl aus der Version 1.6.1.18 genommen und per FTP eingefügt.

Seitdem ist tatsächlich (wieder) Ruhe.

(Dateien habe ich, für Leute wie mich, mal hier angefügt. Stammen aus der 1.6.1.18)

Captcha hatte ich eh schon drin und lasse es auch so.

 

Danke nochmals, Eleazar, für deine Hilfe und in meinem Fall deine Geduld! ;-)

contact-form.tpl

ContactController.php

Share this post


Link to post
Share on other sites

  • 2 weeks later...
  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More