Jump to content
  • 1

SPAM z formularza rejestracji


pCapri

Question

Presta 1.6
Nie potrafię zrobić skutecznego hooka dla formularza rejestracji i od kilku dni wali mi przez niego spam. Formularz kontaktowy mam aktualnie zabezpieczony przez moduł reCaptcha X13, ale na rejestracji nijak nie idzie mi go podczepić :( 

Ktoś robił zabezpieczenie tego formularza?

Link to comment
Share on other sites

73 answers to this question

Recommended Posts

  • 1

Spróbuj w pliku /themes/theme1074/js/order-opc.js po lini 178

params += 'is_new_customer='+encodeURIComponent($('#is_new_customer').val())+'&';

dodać

params += 'g-recaptcha-response='+encodeURIComponent($('#g-recaptcha-response').val())+'&';


odśwież stronę, przetestuj,

robiłem to na szybko i nie jest to do końca rozwiązanie problemu dla tego modułu

 

Link to comment
Share on other sites

  • 0

U mnie również zadziałało, ale niestety po stworzeniu pliku Validate.php moduł do tworzenia XML dla ceneo przestał działać prawidłowo i ceneo zawiesiło pokazywanie oferty mojego sklepu.

wiadomość od nich:

Brak poprawnie opisanych ofert w pliku jest spowodowany pojawieniem się znaków spacji :
"    <?xml version="1.0" encoding="UTF-8"?>".
Prosimy o poprawę danych w  pliku w celu aktualizacji oferty na Ceneo.pl.
W przypadku braku poprawy pliku sklepu oferta zostanie ukryta.

Link to comment
Share on other sites

  • 0

Ja zmian dokonuje bezpośrenio na serwerze, mogę użyć jeszcze dysku sieciowego.

Teraz czekam na przywrócenie z kopii całości i zacznę na nowo.

Więc zapytam ponownie.

Jakich zmian dokonywaliście, jakie pliki w jakich folderach zostały zmienione. Moze coś przeoczyłem, choć nie sądzę.

 

Link to comment
Share on other sites

  • 0

Zastosowałem się do UWAGI i mimo to moduł do generowania XML przestał działać poprawnie. Wyrzuciłem stworzony "Validate.php" moduł do XML zaczął działać poprawnie, boty rejestrujące konta jak narazie nie powróciły, więc chyba wszystko OK.

Link to comment
Share on other sites

  • 0
3 minutes ago, marcin85tbg said:

Skopiowałem jeden do jeden z Twojej strony.

załącznik

Validate.php

W pliku masz o jedno wcięcie kodu za dużo, stąd problemy, skasuj te 4 spacje tudzież taby, które powodują wcięcie.

Są 4 niepotrzebne spacje między początkiem pliku, a <?php :)

3 minutes ago, grennet said:

Nie działa. Mało tego ponownie uwaliło sklep.

A jaby jeszcze było tego mało to zmieniło logowanie na angielski i dopisało dwie rubryki imię i nazwisko. Teeraz muszę wpisac to samo dwa razy. Do duu... ta instrukcja.

Tak, jeszcze proszę napisać co się stało bo jestem bardzo ciekawy, całe szczęście są ludzie, którzy sobie poradzili i nie mają już problemu, Ty możesz szukać rozwiązania gdzie indziej zamiast tutaj narzekać.

Edited by Krystian Podemski (see edit history)
  • Thanks 1
Link to comment
Share on other sites

  • 0

Ja jednak jeszcze nigdy nie zawiodłem się na tym forum i uważam, że są mądrzejsi. Masz po prostu coś na tyle zmotane, że blokuje tę metodę, a nikt nie jest w stanie posiadać wszechwiedzy nt. każdej instancji. Krytyką i to dość bezpardonową wiele się nie nauczysz...

Edited by pCapri (see edit history)
Link to comment
Share on other sites

  • 0
7 hours ago, grennet said:

Tak jak pisałem w artykule oraz tutaj, plik trzeba zapisać w kodowaniu UTF-8, bez BOM, inaczej, nie będzie to działać. Skoro u Ciebie to nie działa to:
- robisz coś źle, napisałeś, że zmiany robisz bezpośrednio na serwerze, w porządku, a jakim edytorem?
- albo masz modyfikacje, które wpływają bezpośrednio na działanie tej łatki, co jest mało prawdopodobne, chyba, że masz nadpisanie klasy Customer w katalogu /override/classes

Naprawdę myślisz, że ktoś będzie tutaj się bawił w dawanie "fake" rozwiązań? Dla mnie dodawanie captchy do procesu zakupowego to jakieś nieporozumienie, ale co kto woli.

Edited by Krystian Podemski (see edit history)
Link to comment
Share on other sites

  • 0

Nie chodzi o fake rozwiązań, tylko o napisanie czegoś wiecej. Porównywałem pliki z różnych wersji presty to samo. Nawet aktualizacja do najnowszej wersji 1.6 nie pomogła. Więc zabezpieczyłem wszystkie formularze capchta i po sprawie.

Kodowanie poprawne UTF-8, bez BOM.

Link to comment
Share on other sites

  • 0
21 hours ago, Krystian Podemski said:

Jeżeli wyrzuciłeś Validate.php to nie masz żadnego zabezpieczenia, tworząc modyfikacje w Validate.php prawdopodobnie zrobiłeś jakiś błąd, np. masz spację w pierwszej linii albo jeden pusty znak, to może "rozwalić" sklep

Witam, jednak wystąpił błąd i nie dało się złożyć zamówienia po zmianach w pliku Customer.php

Co zrobiłem nie tak?

Przechwytywanie.PNG

Customer.php

Link to comment
Share on other sites

  • 0

przed majówką zainstalowałem eicaptcha i 0 botów od tego czasu :D z minusów to klientów też 0, a jedna osoba, która się odezwała to że przy składaniu zamówienia (gdzie też jest formularz rejestracji) captcha nie działa (na ten moment nie mam info czy captcha za trudna, czy się nie wyświetla u klienta) także tego...

Link to comment
Share on other sites

  • 0
33 minutes ago, adam11 said:

przed majówką zainstalowałem eicaptcha i 0 botów od tego czasu :D z minusów to klientów też 0, a jedna osoba, która się odezwała to że przy składaniu zamówienia (gdzie też jest formularz rejestracji) captcha nie działa (na ten moment nie mam info czy captcha za trudna, czy się nie wyświetla u klienta) także tego...

Możesz sprawdzić to samodzielnie rejestrując się na sklep.

Link to comment
Share on other sites

  • 0
38 minutes ago, grennet said:

Możesz sprawdzić to samodzielnie rejestrując się na sklep.

 

35 minutes ago, foit125 said:

Dokładnie. Wyloguj się i przeprowadź testowo rejestrację i zakup w chromie i FF.

wiem, wiadomo że sprawdzałem po instalacji i po tej wiadomości i u mnie działało, pytanie co widział albo czego nie widział klient u siebie

Link to comment
Share on other sites

  • 0

U mnie błąd, spróbuj go odinstalować i zainstalować drugi.

Ale jak chcesz bez modułu to skorzystaj z tej instrukcji którą napisałem na forum angielskim:

Ona działa idealnie i jest napisane jak krowie na granicy.

Po całym zabiegu skasuj z foldera cache plik class-index.php

I give a short but effective instruction:
You open files with your own store, find the folder classes in the root directory of the domain, and find the file named Customer.php, open it and find:

 'lastname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
 'firstname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),

You only replace isName on isCustomerName and save

Then you have to upload it as you do not have the file Validate.php may be what I sent is coded without boom, it has to look like this:

<?php
    class Validate extends ValidateCore
    {
        public static function isCustomerName($name)
        {
            if (preg_match(Tools::cleanNonUnicodeSupport('/www|http/ui'), $name)) {
               return false;
            }
            return preg_match(Tools::cleanNonUnicodeSupport('/^[^0-9!\[\]<>,;?=+()@#"°{}_$%:\/\\\*\^]*$/u'), $name);
        }    
    }

You upload it to override / classes

If you have it, delete it and upload mine, then you clear the cache and delete the class-index.php file from the cache folder and it must work without any module

 

A plik validate.php podsyłam w załaczniku prawidłowy do wstawienia 

 

Linkj do forum angielskiego: 

 

Validate.php

Validate.php

Edited by grennet (see edit history)
Link to comment
Share on other sites

  • 0
On 5/6/2019 at 2:26 PM, grennet said:

U mnie błąd, spróbuj go odinstalować i zainstalować drugi.

U mnie też nie działa składanie zamówień przez sklep. Gdzie jest ten drugi skrypt do instalacji? Jak nie ma to skorzystam z instrukcji powyżej :)

P.S.
Próbowałem wg opisu powyżej, ale mam pytanie... skoro mam plik validate.php i jest w nim ponad 1000 linijek kodu to mam je wywalić i wkleić tylko te 11 linijek co jest w Twoim validate.php? Te 1000 linijek jest na pewno zbędnych? ;)

Edited by Grafii76 (see edit history)
Link to comment
Share on other sites

  • 0

<?php
    class Validate extends ValidateCore
    {
        public static function isCustomerName($name)
        {
            if (preg_match(Tools::cleanNonUnicodeSupport('/www|http/ui'), $name)) {
               return false;
            }
            return preg_match(Tools::cleanNonUnicodeSupport('/^[^0-9!\[\]<>,;?=+()@#"°{}_$%:\/\\\*\^]*$/u'), $name);
        }    
    }

 

Mam tylko to, ale pamiętaj validate jest w dwóch miejscach.

Edited by grennet (see edit history)
Link to comment
Share on other sites

  • 0
10 hours ago, Grafii76 said:

Znalazłem 2 pliki validate
Pierwszy w classes/Validate.php - tu mam pierwszy plik poniżej (ponad 1000 linii)
Drugi w tools/swift/classes/swift/validate.php - tu mam ten drugi plik poniżej (ok. 40 linii)

Który z nich powinno się zastąpić tym co podałeś?

Validate.php

Tylko jednym, nie wiem czemu dwa razy sie wstawił. Wykasowac nie mogę bo widnieje tylko jeden.

Link to comment
Share on other sites

  • 0

Zrobiłem modyfikacje w pliku Customer.php w katalogu /root/classes wg instrukcji powyżej
Plik validate.php (ten z 11 linijkami tekstu podanego przez @grennet) wrzuciłem do /override/classes

Wyczyściłem pamięć cache
Usunąłem plik class_index.php

Niestety nadal nie działa :(. Czy mam odinstalować skrypt eicaptcha udostepiony przez @grennet?

P.S.
Plik validate o którym pisałem mam w innej lokalizacji (tak jak podawałem powyżej). Jego zostawiłem bez zmian (ma ok. 1000 linijek).

Link to comment
Share on other sites

  • 0

Musi działać, wyczyć cache sklepu, zaznacz kompilacje ponownie. CSS itp bez zmian .....

Validate który podesłałem kopiuj  cały,  nie tylko sam tekst, musi być zachowane kodowanie. Masz gotowy plik. Nie kopkuj samej tresci.

Edited by grennet (see edit history)
Link to comment
Share on other sites

  • 0

takie rzeczy zmieniałem, pytanie które z nich miały wpływ na ten chwilowy brak botów

z formularza rejestracji

- usunąłem tytuł (pan, pani itp.)

- datę urodzenia 

z poziomu presty

- wyłączyłem wysyłania powitalnego maila

Link to comment
Share on other sites

  • 0

Sprawdziłem wszystko jeszcze raz wg instrukcji powyżej. Plik Validate.php wrzuciłem w oryginalne pobrany powyżej. Wykasowałem cache z poziomu menu sklepu, wykasowałem plik class-index.php. Wymusiłem ponowną kompilację... Przy składaniu zamówienia nadal wyskakuje:
"incorrect response to CAPTCHA challenge. Please try again."

Poddaje się, poszukam innego rozwiązania. Mimo wszystko dzięki za pomoc.
Mam włączony tryb: Zakupy na jednej stronie - może to jest problemem?

Edited by Grafii76 (see edit history)
Link to comment
Share on other sites

  • 0

powiem tak, mija kilkadziesiąt godzin bez botów, w tym czasie normalni klienci założyli konta i złożyli zamówienia, wcześniej włączyłem przy rejestracji podawanie adresu do wysyłki i boty sobie z tym radziły, więc z powrotem wróciłem do podstawowej rejestracji, mail powitalny wyłączyłem dosyć spontanicznie, bo chciałem mieć chwilowy spokój w czasie rozwiązywania tego problemu, a bot zakładał chyba na fałszywe maile i miałem pocztę zaśmiecona zwrotkami z brakiem możliwości dostarczenia maila

 

10 hours ago, Grafii76 said:

Sprawdziłem wszystko jeszcze raz wg instrukcji powyżej. Plik Validate.php wrzuciłem w oryginalne pobrany powyżej. Wykasowałem cache z poziomu menu sklepu, wykasowałem plik class-index.php. Wymusiłem ponowną kompilację... Przy składaniu zamówienia nadal wyskakuje:
"incorrect response to CAPTCHA challenge. Please try again."

Poddaje się, poszukam innego rozwiązania. Mimo wszystko dzięki za pomoc.
Mam włączony tryb: Zakupy na jednej stronie - może to jest problemem?

weź spróbuj wyłączyć mail powitalny

Link to comment
Share on other sites

  • 0

Wyłączyłem mail po rejestracji, wyczyściłem cache ale nadal nie działa.

Problem jest z zakupami bez rejestracji, nie da się zautoryzować CAPTCHA. Zakup w 1 kroku, może to jest problem. Czy ktoś kto używa zakupu w 1 kroku (nie w5) i działa CAPTCHA przy zakupie bez rejestracji? Przykład jak tutaj: zamek-szyfrowy.pl

Link to comment
Share on other sites

  • 0
On 5/10/2019 at 6:36 PM, atomek said:

Spróbuj w pliku /themes/theme1074/js/order-opc.js po lini 178

params += 'is_new_customer='+encodeURIComponent($('#is_new_customer').val())+'&';

dodać

params += 'g-recaptcha-response='+encodeURIComponent($('#g-recaptcha-response').val())+'&'; 


odśwież stronę, przetestuj,

robiłem to na szybko i nie jest to do końca rozwiązanie problemu dla tego modułu

 

@atomek na szybko teraz dodałem i sprawdziłem robiąc sam zakup bez rejestracji.... na razie działa, dzięki :)
Potestuję dalej i dam znać.

Link to comment
Share on other sites

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
×
×
  • Create New...