Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> [algorytm] Blokada spamu przy wysyłaniu formularza, Prośba o test/ocenę...
Sephirus
post 5.03.2012, 08:43:45
Post #1





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam.

Wpadłem ostatnio na dość (moim zdaniem) ciekawy sposób na zabezpieczenie formularza przed botami spamującymi. Szukałem czegoś alternatywnego do captcha ale milszego dla użytkownika (bez potrzeby przepisywania pokręconych znaczków).

Zanim opiszę mój pomysł chciałbym go przetestować i prosić o jego ocenę toteż na stronie tutaj (przepraszam za darmowy serwer i reklamę na górze tongue.gif) wrzuciłem przykład...

Przykład składa się z pola do wpisania e-mail (oczywiście przyjmie wszystko - musiałem je jakoś nazwać... nie wpisujcie tam swoich e-maili) oraz dodatkowego pseudo-zabezpieczenia jakim jest suma 2 losowo generowanych liczb z zakresu 1-9.

Od razu zaznaczam, że element z sumowaniem liczb jest tam w celu zmylenia "przeciwnika".

Jeżeli ktoś byłby chętny spróbować napisać coś co wyśle ten formularz i dostanie w odpowiedzi "OK" to zapraszam smile.gif - innymi słowy zabawa dla ciekawych i znudzonych wink.gif

Dziękuję za pomoc, testy i ocenę wink.gif

EDIT: Nie sądzę bym był pierwszym, który wpadł na coś takiego - żeby nie było - ale się z tym nie spotkałem... wink.gif

Ten post edytował Sephirus 5.03.2012, 08:47:41


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
by_ikar
post 5.03.2012, 10:02:37
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


W tokenie jest suma kontrolna z sumy tych dwóch podanych liczb? Tzn suma liczb plus pewnie jakaś sól wink.gif powiem ci tyle, że zsumowanie takich dwóch liczb i przekazanie je do formularza, nie jest raczej czymś specjalnym dla boota. I w sumie sam bym mógł takiego napisać bez większego problemu..
Go to the top of the page
+Quote Post
Sephirus
post 5.03.2012, 10:11:15
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


smile.gif To nie jest tak... Jak pisałem to z sumowanie liczb jest dla niepoznaki smile.gif oczywiście jest sprawdzane... ale nie to jest główne zabezpieczenie tongue.gif

Sam token nie ma nic wspólnego z sumą liczb - te dwie rzeczy są niezależne.

W Formie są 3 zabezpieczenia:
1. Token - standardowe zabezpieczenie CSRF
2. Suma A+B - alternatywa dla captcha
3. "coś" - czego wyjawić narazie nie mogę... wink.gif

i właśnie to "coś" chcę przetestować smile.gif Ale żeby to zrobić to trzeba by było spróbować napisać kod, który wyśle coś z tego forma tak by system wyłapał to jako poprawne wysłanie i wyświetlił "OK" smile.gif

Powiem jeszcze tak:

bez punktów 1 i 2 zabezpieczenie nadal by działało smile.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
by_ikar
post 5.03.2012, 11:21:57
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Dobra, to nie wiem co to jest i gdzie to może być wink.gif czekam kiedy podzielisz się tym "czymś" wink.gif
Go to the top of the page
+Quote Post
Sephirus
post 5.03.2012, 11:30:43
Post #5





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Idealnie by było gdyby ktoś zechciał z tym pokombinować sad.gif Bo tak od razu zdradzać całą tajemnicę... :/

1 znajomy programista z pracy wymiękł dość szybko... Ale nie jest jego specjalnością łamanie takich zabezpieczeń tongue.gif

Ja się bawiłem w rozwalanie tego typu formularzy i na to co w nim zrobiłem raczej bym za szybko nie wpadł... A swego czasu wszelkiego rodzaju formularze hostingów z plikami, filmami itd... (wszystkim dobrze znane i lubiane) były dość proste do złamania (na przykład logowania itd...) Postanowiłem zatem zrobić coś nowego i wrzucić w miejscu, gdzie z doświadczenia własnego bym po prostu nie szukał tongue.gif

W celach motywacyjnych dla pierwszej osoby, która to zabezpieczenie złamie czeka równowartość dwóch dobrych PIW! (bezalkoholowych "oczywiście") smile.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
by_ikar
post 5.03.2012, 11:36:14
Post #6





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Dobra, z racji że podbiłeś stawkę, to będę jeszcze raz strzelać wink.gif w sesji przechowujesz czas wejścia do formularza, następnie porównujesz go z czasem wysłania formularza i jeżeli jest dość niewielki, wtedy zaliczasz to jako robota? Innych opcji już tutaj nie dostrzegam biggrin.gif
Go to the top of the page
+Quote Post
Sephirus
post 5.03.2012, 11:40:44
Post #7





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Hmm to o czym mówisz też jest dobre smile.gif Ale spotkałem się z tym gdzieś i da się to obejść oczywiście poprzez "odczekanie" przez robota - ale to jest całkiem dobre zabezpieczenie (tylko trzeba dobrze dobrać wartości tych czasów).

Niestety... u mnie jest coś innego smile.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
by_ikar
post 5.03.2012, 11:46:50
Post #8





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Tak też się spotkałem z tym czekaniem przez robota, tyle że w wielu przypadkach jest to średnio opłacalne. Powiedzmy dasz 10 sekund, przy nieco większym formularzu, i komu się będzie chciało spamować, jeżeli 1 wpis będzie zajmować 10 sekund wink.gif

Jeżeli to nie to, pozostaje już chyba w moim skromnym "arsenale", jedynie opcja sprawdzania odstępu czasu między jednym wysłaniem formularza a drugim. Jeżeli również to nie to, no to niestety, wszystkie karty wyłożyłem, a asa w rękawie brak wink.gif
Go to the top of the page
+Quote Post
Sephirus
post 5.03.2012, 11:54:33
Post #9





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


hmm sad.gif niestety... zabezpieczenie nie ma nic wspólnego z jakimkolwiek czasem :/ Dziękuję jednak za zainteresowanie - potwierdza to na razie abstrakcyjność rozwiązania co mnie cieszy wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
by_ikar
post 5.03.2012, 13:19:12
Post #10





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Mam jedynie nadzieje, że jeżeli za bardzo nie będą ludzie chcieli się bawić w łamanie twojego zabezpieczenia, lub nikomu nie uda się go złamać, że mimo to podzielisz się szczegółami, lub wyjaśnisz samą zasadę działania tego zabezpieczenia wink.gif
Go to the top of the page
+Quote Post
Sephirus
post 5.03.2012, 13:22:31
Post #11





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jeżeli nikt go nie złamie to wyjawię tylko zainteresowanym smile.gif (Na pewno Tobie ;P) Ale to nie jest jakieś super zabezpieczenie - jego moc jest w abstrakcyjności ;P

Narazie jeszcze poczekam - może ktoś się jeszcze znajdzie tongue.gif

Gdzie są Ci chętni do pracy hackerzy gdy ich potrzeba... Anonymous!!! ;P haha.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
xxdrago
post 5.03.2012, 17:47:29
Post #12





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Ja dam mój pomysł, zastanawiałem się czy nie lepiej dodać pola typu hidden, i nazwać je e-mail? Jeżeli bot je uzupełni to formularz nie przejdzie.

A twoje zabezpieczenie to nie jest czasami sprawdzenie "przeglądarki" z jakiej user korzysta (wiem , że da się to ominąć) ? smile.gif


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
Crozin
post 5.03.2012, 18:28:55
Post #13





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@xxdrago: Przy okazji na filtr załapią się wszystkie osoby z automatycznym wypełnianiem formularza.
@by_ikar: Co to za problem otworzyć 5 000 sesji gdzie każda z nich, równolegle, będzie odczekiwać te 10 sekund?
@Sephirus: Security through obscurity to jedna z tych metod, które daje jedynie fałszywe poczucie bezpieczeństwa.
Go to the top of the page
+Quote Post
xxdrago
post 5.03.2012, 18:36:01
Post #14





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Crozin, wiem o tym to chyba też o to chodzi, aby pola były wypełnione "ręcznie". Sposób musi być taki , aby nie denerwował użytkownika, głownie o to chodzi.


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
Sephirus
post 5.03.2012, 18:57:32
Post #15





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Odrzucam wszelkie "zabezpieczenia" na zasadzie ukrytych pól itd... powód - tego typu zabezpieczenia opierają się albo na JS albo na CSS. Manipulacja JS lub CSS i jesteśmy w domu.

@crozin Security through obscurity - nie do końca zgadzam się z tą opinią - wszystko trzeba odpowiednio używać. Indywidualne zabezpieczenia, oryginalne mają tą przewagę przynajmniej że nie ma na nie gotowych rozwiązań, zatem ktoś musi te rozwiązania wynaleźć (to tylko kwestia czasu) a to zajmuje troszkę i część się podda wyszukując przy tym mniej oryginalnego przedmiotu ataku.

Cytat
A twoje zabezpieczenie to nie jest czasami sprawdzenie "przeglądarki" z jakiej user korzysta (wiem , że da się to ominąć) ?


Nie do końca wiem o co Ci chodzi xxdrago ;P User-Agent? To by było żadne zabezpieczenie... Fingerprint przeglądarki z kolei nie ma tu zastosowania... evercookie tym bardziej więc serio nie wiem o które z tych rzeczy Ci chodzi wink.gif

W skrócie - NIE - nie ma to nic wspólnego z przeglądarką wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
xxdrago
post 5.03.2012, 19:21:03
Post #16





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Nie ma chyba innej możliwości, mógłbyś dać wersje bez działania matematycznego? Tylko samo podanie e-mail?


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
Sephirus
post 6.03.2012, 14:54:24
Post #17





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jest bez wink.gif

I jak xxdrago udało się coś zrobić? Znaleźć o co chodzi?


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
xxdrago
post 6.03.2012, 15:09:42
Post #18





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Próbowałem, coś się bawić w CURL ale ten token jest też ciężko złamać, wyłącz go i pobawię się jeszcze i ci dam znać, czy da sie uzupełnić bez "człowieka".


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
Sephirus
post 6.03.2012, 15:34:16
Post #19





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


ok wieczorkiem koło 19 tokena nie będzie (teraz nie mam jak zmienić)


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
Crozin
post 6.03.2012, 16:39:54
Post #20





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@Sephirus: Złamanie zabezpieczenia zajęło mi... około 90 sekund. spam.png - wcale nie rzuca się w oczy. wink.gif

Dodatkowo:
1. Jeżeli coś jest źle (jakiś błąd wywali), dam cofnij i jeszcze raz (poprawnie) wypełnię wywala informację o spamie (nie wiem czy to token czy spam.png powodował).
2. Jeżeli ktoś wyłączy sobie wyświetlanie obrazków (np. korzystając z Internetu przez GPRS) to może zapomnieć o wypełnieniu formularza. Nie będzie też mieć pojęcia dlaczego nie może go wysłać.

Ten post edytował Crozin 6.03.2012, 16:59:37
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 19:36