SPAM z formularza kontaktowego PrestaShop 1.6

Spamerzy non stop kombinują jak tu wykorzystać do swoich niecnych celów formularze dostępne na stronach internetowych. Czyli jak zasypać innych wirtualnymi śmieciami.

Tak tak, śmieciami, ponieważ z reguły oferty spamerów tak mi pasują jak te w stylu „kup pan cegłę”. Kto nie wie skąd ten cytat polecam stare polskie kino „Ewa chce spać”. Niesamowite dialogi i warszawski slang.

Jest tam scenka z opryszkiem, który szkolony był jak odpowiednio podejść osobę na ulicy i niekoniecznie chodziło o podejście siłowe, czyli cegła nie stanowiła jedynego atutu. Liczyło się odpowiednie, kulturalne podejście do „klienta”. Opryszek bardzo elokwentnie przedstawił propozycję nie do odrzucenia: „Panie szanowny! Kup pan te cegłę! Odpalasz pan stówkę ocalasz pan główkę!”. Czyli dobijając do brzegu, chodzi mi o to, że oferta spamerów jest mi całkiem zbyteczna, tylko tracę czas na odgruzowanie poczty ze śmieci.

Tym razem spamerzy wykorzystali brak zabezpieczeń w domyślnym formularzu kontaktowym sklepu internetowego opartego o silnik PrestaShop 1.6. Poskutkowało to masowym otrzymywaniem syfu pisanego głównie w cyrylicy.
Rozwiązanie, znalezione na oficjalnym anglojęzycznym forum wsparcia PrestaShop jest proste do zaimplementowania.

1. Wchodzimy do usługi Google reCaptcha. Aby z niej za darmo skorzystać należy posiadać konto w usługach Google.

2. Dodajemy tam naszą domenę i generujemy dwa klucze, czyli ciągi znaków.

3. Do nagłówka strony, czyli do pliku header.tpl w naszym szablonie, dodajemy tuż przed </head> następujący kod:
<script src=”https://www.google.com/recaptcha/api.js”></script>

4. W szablonie contact-form.tpl przed </form> wstawiamy:
<div class=”g-recaptcha” data-sitekey=”[public Google key]”></div>

Uwaga! Należy wpisać klucz publiczny wygenerowany w usłudze reCaptcha w miejscu: [public Google key]

5. Na końcu otwieramy plik
/controllers/front/ContactController.php

po linii:
$this->errors[] = Tools::displayError(‚Bad file extension’);

wklejamy kod:
else if (!($gcaptcha = (int)(Tools::getValue(‚g-recaptcha-response’))))
$this->errors[] = Tools::displayError(‚Captcha not verified’);

To wszystko, formularz jest zabezpieczony, a ruskije partizanty muszą kombinować gdzie indziej. Mogą na przykład zająć się szkoleniem gołębi na pucybuty.
No co? Jakoś trzeba było wytłumaczyć dołączone zdjęcie ;-)

3 marca 2018, Tomasz Bartosiewicz,

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *