Jump to content
  • 1
pCapri

SPAM z formularza rejestracji

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?

Share this post


Link to post
Share on other sites

73 answers to this question

Recommended Posts

  • 1

Wszyscy którzy nie radzą sobie z zabezpieczeniem i modyfikacją  formularza rejestracyjnego oraz formularza kontaktowego.

W załączniku darmowy moduł. 2 w 1

 

eicaptcha.zip

Share this post


Link to post
Share on other sites
  • 1
Posted (edited)

Tak działa w 1.5

Edited by grennet
  • Like 1

Share this post


Link to post
Share on other sites
  • 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

 

Share this post


Link to post
Share on other sites
  • 0

Dzięki, faktycznie nie potrzebnie się zafixowałem na captcha :)

Share this post


Link to post
Share on other sites
  • 0

Niesttey ten sposób nie działa. Mało tego rozwalił sklep.

  • Confused 1

Share this post


Link to post
Share on other sites
  • 0

U mnie metoda cytowana przez Daresh'a zadziałała bez pudła.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites
  • 0

pewnie zły edytor użyty do zrobienia zmian w pliku

Share this post


Link to post
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ę.

 

Share this post


Link to post
Share on other sites
  • 0

Wszystko zgodnie z instrukcją, do Validate.php dodałem funkcję i podmieniłem warunki dwóch pól w customer.php.

Share this post


Link to post
Share on other sites
  • 0

Rozumiem, ale custommer.php jest w dwóch miejscach. classes/Customer.php

oraz override/classes/Customer.php

W którym mam dokonac zmian. ?

Share this post


Link to post
Share on other sites
  • 0

Ja ruszałem tylko ten w głównym katalogu classes.

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Dziękuje za info, sparwdzę jak mi już kopia się zrobi. Oczywiście dam znać.

Edited by grennet

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Sposób działa i nie rozwala nic w sklepie, jeżeli zmian dokona się prawidłowo, zgodnie z instrukcją i biorąc pod uwagę tekst napisany jako UWAGA.

Edited by Krystian Podemski

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)
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
  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0

widzę, ale właśnie przywruciłem z kopii, zaczekaj chwilkę zrobię wszystko wedle instrukcji i zobaczysz że nic nie będzie działało.

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

 Nie działa. Mozesz zobaczyć ponownie

Edited by grennet

Share this post


Link to post
Share on other sites
  • 0

Faktycznie teraz nawet normalnego konta nie można założyć. Czemu tak jest niech odpowiedzą mądrzejsi, bo ja się tutaj tylko uczę...

Share this post


Link to post
Share on other sites
  • 0

Sam widzisz , madrzejsi jednak nie są tacy mądrzy, skoro pisza że działą, a jednak fake... Przywracam z kopii.

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

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

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Wiem, ale to prosta instrukcja kopiuj i wklej to co robię zle ?, nic.

Nic nie jest zrąbane, tylko moze wersja za stara, zaraz zrobję aktualizację, potem ponowny test.

Edited by grennet

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)
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

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
  • 0
4 hours ago, marcin85tbg said:

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

Nie jestem w stanie pomóc posiadając takiego screenshota, prawdopodobnie kodowanie znaków pliku Validate.php, a nie same zmiany w Customer.php

Share this post


Link to post
Share on other sites
  • 0

Z tego co widzę na forum o tym module to też trzeba dłubnąć w kodzie i wielu ma z tym problem ;) 

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Nic nie potrzeba dłubać, jezeli oczywiście potrzebujesz samo zabezpieczenie formularza rejestracyjnego. Wpisujesz tylko klucze wygenerowane.

link do generowania kluczy

 

capchta.png

Edited by grennet

Share this post


Link to post
Share on other sites
  • 0

@grennet - wielkie dzięki!!! :) Wersja 1.6.1.11 działa bez problemu :)
Skoro spam się skończy to co ja będę robił? Chyba trzeba odpocząć na weekend majowy ;) Pozdrawiam

Share this post


Link to post
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...

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
  • 0

Daj linka to zobaczymy, skoro sam nie jesteś pewny tego co widzisz :)

Share this post


Link to post
Share on other sites
  • 0

Dokładnie. Najlepiej w ten sposób sprawdzić.

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

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

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)
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

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

<?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

Share this post


Link to post
Share on other sites
  • 0

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

Validate.php

Share this post


Link to post
Share on other sites
  • 0
17 hours ago, Grafii76 said:

? Te 1000 linijek jest na pewno zbędnych? ;)

Zgadza sie, zbednych, pod warunkiem, ze poprawiony plik wrzucisz w ./override i przeczyscisz cache

Share this post


Link to post
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.

Share this post


Link to post
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).

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

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

Share this post


Link to post
Share on other sites
  • 0

chwilowo (kilka h) brak botów, testowałem po swojej stronie zakładanie konta i ok, mógłby ktoś z was też zobaczyć czy też możecie u mnie założyć konto? https://www.tanietablice.pl

jak będzie ok to napisze co zmieniłem

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
  • 0

Może to nowy sposób na boty : ) Może jadą jakimś wyznaczonym torem, brak jednego przycisku ogłupia boty : ) Testuj dalej, moze to akurat najlepsze rozwiazanie : )

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)
2 hours ago, adam11 said:

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

Jaki mail powitalny? Nie wiem o czym mówisz ;)
Masz zakupy na jednej stronie czy w 5 krokach?

Moja strona gdzie jest problem: https://zamek-szyfrowy.pl/
Nie da się zrobić zakupu bez rejestracji (złożyć zamówienia)

Edited by Grafii76

Share this post


Link to post
Share on other sites
  • 0

mail powitalny, czyli mail wysyłany po rejestracji na maila, z loginem i ustawionym hasłem, w prescie 1.6 preferencje -> klienci -> mail po rejestracji

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
  • 0

Miałem podobny problem i zamiast bawić się z recapatha w lokalizacji zablokowałem Rosję i Ukrainę :) pomogło

Share this post


Link to post
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ć.

Share this post


Link to post
Share on other sites
  • 0

włączyłem testowo na chwile wysyłkę maila po rejestracji i nagle znowu 3 boty w ciągu 2h, dziwna sprawa

Share this post


Link to post
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

×

Important Information

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