Nasze newsy
Śledź nasze aktualności.
Sklep internetowy prestashop w wersji 1.6.x posiada słabo zabezpieczony formularz kontaktowy. Podatność polega na tym, że spam boty wykorzystują formularz aby rozsyłać spam. Spam trafia na skrzynkę właściciela sklepu internetowego. Podatność została oznaczona numerem PSCSX-9132. Jej rozwiązanie zostało zaproponowane jeszcze w 2017r na github. Polegało na utworzeniu ciasteczka (cookie) za każdym razem jak formularz jest generowany. Poprawka dotyczyła plików: ContactController.php oraz contact-form.tpl.
Dodatkowym zabezpieczeniem formularza mogło być dodanie Google reCaptcha. Niestety w praktyce zdarzają się odrzucenia poprawnych adresów e-mail co ostatecznie zniechęca właścicieli sklepów internetowych prestashop do stosowania tego rozwiązania.
Poprawka 8168 okazała się nie wystarczająca. Spam boty znalazły obejście wprowadzonego zabezpieczenia. Wystarczyło zapisywać wygenerowany plik cookie i przekazywać jego wartość podczas spamowania formularza. Spam bot raz otwierał stronę kontaktową zapisywał wartość contactKey przekazywaną w formularzu
<input type="hidden" name="contactKeyPresta" value="{$contactKey}" />
Rozwiązaniem tego problemu jest czyszczenie ciasteczka za każdym razem kiedy zapytanie zostanie poprawnie wysłane. Aby to zrobić należy do pliku ContactController.php dodać kod
$this->context->cookie->__unset('contactFormKey');
przed linią 210 zawierającą kod
$this->context->smarty->assign('confirmation', 1);
Rozwiązanie to pomoże przynajmniej częściowo. Spam bot musiałby za każdym razem otwierać stronę kontaktową aby pobierać nową wartość pliku cookie. Czekamy na modernizację spam botów :D
Śledź nasze aktualności.
October CMS 3.7 wprowadza szereg nowości, które usprawniają pracę z treściami oraz integrację danych. Wśród kluczowych funkcji znajduje się „Record Finder Content Field”, pozwalający na łatwiejsze łączenie modeli Tailor z modelami Laravel, co ułatwia zarządzanie złożonymi relacjami danych. Zaktualizowano również edytor kodu oraz zwiększono poziom bezpieczeństwa, co sprawia, że system jest bardziej elastyczny i odporny na zagrożenia.
Jak poprawnie iterować dużą ilość danych w Laravel Eloquent