SPAM z formularza kontaktowego PrestaShop 1.6

3 marca 2018 | Po godzinach - Wszystkie wpisy, Poradnik | 6 Komentarze

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');

Dla pewności jak on powinien wyglądać po wklejeniu podaję większy fragment kodu z pogrubieniem nowego:

else if (!empty($fileAttachment['name']) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -4)), $extension) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -5)), $extension))
 $this->errors[] = Tools::displayError('Bad file extension');
else if (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))))
 $this->errors[] = Tools::displayError('Zaznacz ptaka, że nie jesteś spamerem :-)');
else {

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 😉

Autor tekstu:

Autor tekstu:

Tomasz Bartosiewicz - Ojciec dyrektor

Ojciec bo pełni funkcję taty dla dwójki cudownych dusz, a dyrektor, bo jest szefem w ITB Vega 😉
Co mnie kręci: świat technologii oraz jak można go użytecznie wykorzystywać, maratony w basenie, wędrówki po starych górach, robienie zdjęć.
Mieszkam i pracuję w Bydgoszczy, ale wykonuję sporo prac zdalnych. Jeśli szukasz kogoś do stworzenia strony internetowej lub do jej aktualizacji, zadzwoń, z przyjemnością porozmawiam o Twoich potrzebach
507 96 11 46

6 komentarzy

  1. Tomasz Bartosiewicz

    Haniu, trudno cokolwiek powiedzieć bez zajrzenia do kodu, ale wygląda na to, że gdzieś zrobiłaś błąd. To rozwiązanie przetestowałem na kilku wersjach Prestashop 1.6.x

  2. Hania

    Witam, fajnie prosto napisane poradziłam sobie spokojnie z tym że gdy wysyłam wiadomość wcale nie trzeba zaznaczyć kwadracika tylko wysyła nawet bez zaznaczenia 🙁

    Jakiś błąd z mojej strony?

  3. Selljus

    Dobry artykuł. Podobno roboty potrafią już ominąć reCaptcha, jednak nie jest to jeszcze tak powszechne i w większości przypadków spełnia oczekiwania.

  4. Tomasz Bartosiewicz

    Kurza burza! A to niespodzianka,
    nie zauważyłem, że WordPress zmienia apostrofy oraz cudzysłowia na inne jakieś znaki.
    Już poprawiłem, przepraszam za niedopatrzenie i dzięki Ewelino za odzew.
    Teraz powinno działać, jeśli kod wkleisz dokładnie tak jak jest podany.
    Dorzuciłem jeszcze większy kawałek kodu do podglądu, jak to dokładnie ma wyglądać.

  5. Ewelina

    Strona /kontakt działa jak usunę kod

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

  6. Ewelina

    hej, wszystko zrobione tak jak napisane w artykule, a po wejściu na podstronę /kontakt mam komunikat

    Ta strona nie działa
    Serwer xxxx nie może teraz obsłużyć tego żądania.

    Presta 1.6.1.8

    gdzie mogę mieć problem ?
    Pozdrawiam

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Po godzinach

Wielkie zmiany w pozycjonowaniu stron internetowych

Wielkie zmiany w pozycjonowaniu stron internetowych

Można to śmiało nazwać rewolucją, a zbliża się ona wielkimi krokami. Niektórzy spece od SEO zaczynają to zauważać i czasami gdzieś w sieci można spotkać ciekawe analizy. Wynika z nich, że strony www, którymi się opiekują piszący, przyciągają duży ruch, który jest niewspółmiernie wielki do środków jakie włożono w linkowanie. I to jest najbardziej zaskakujące, ten stosunek działań do efektów, zwłaszcza pod kątem linkowania.

Ghost in the Machine, IBM NorthPole, zasobożerność procesów myślowych i kreatywność sztucznej inteligencji

Ghost in the Machine, IBM NorthPole, zasobożerność procesów myślowych i kreatywność sztucznej inteligencji

Tytuł wpisu to zbiór tematów, które przy niedzieli mnie naszyły, a że pod czaszką kipi kreatywność, to pozwalam jej się wydostać przy pomocy klawiatury. A i że kocham muzykę wszelkiej maści, to dziś się też podzielę pewnym smacznym kąskiem, który idealnie pasuje do mojego pisania o sztucznej inteligencji i jej zagrożeniach wynikających z jej rozwoju, bo i o tym też wspomnę.

Przyszłość WordPress, czyli najpopularniejszego systemu CMS na planecie Ziemia

Przyszłość WordPress, czyli najpopularniejszego systemu CMS na planecie Ziemia

Zastanawiasz się może nad przyszłością WordPress’a? Pewnie nie. No chyba, że twój biznes oparty jest o tworzenie lub obsługę stron internetowych i czasami sprawdzasz czy twoje narzędzia mają potencjał w przyszłości. Albo może jesteś amatorem, który dzierga strony wieczorowo i sprawdzasz czy ten WordPress jeszcze długo pociągnie. A może ktoś Ci stawia stronę na WordPress’ie i chcesz dowiedzieć się czy długo ona podziała? Jeśli zastanawiasz się nad przyszłością WordPress’a to zapraszam do lektury.

CSS before i after dla Google są za ścianą

CSS before i after dla Google są za ścianą

Na oficjalnym profilu Google na platformie X pojawił się wpis „Zalecamy, aby nie dodawać znaczących treści ani symboli za pomocą pseudoelementów CSS ::before i ::after”. Spece z Google stwierdzają, że takie treści nie mogą być wykorzystywane do indeksowania stron. Jako ciekawostkę można dodać, że nie jest to zmiana w działaniu wyszukiwarki Google. Została ona po prostu wspomniana w dokumentacji.

Wyszukiwarka Bing + AI = Coś niespotykanego!

Wyszukiwarka Bing + AI = Coś niespotykanego!

Jest taki tort, który zwie się wyszukiwarki internetowe. Microsoft chciał chapnąć z niego większy kawałek. Zapewne firma widziała okazję na zmniejszenie dominacji Google. Na początku roku, bo to jakoś w lutym było, Microsoft ogłosił uruchomienie ChatGPT w swojej wyszukiwarce Bing. Oczywiście wszystko dostępne tylko we własnej przeglądarce Edge. Upłynęło kilka miesięcy, można ocenić skutki – co wyszło z tego połączenia?