To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Propozycje modyfikacji - [beta] Nowe zabezpieczenia przeciwbotowe

Majkelo - 10-01-2013, 16:49
Temat postu: [beta] Nowe zabezpieczenia przeciwbotowe
Witajcie!

Przez ostatnie tygodnie, pracowałem nad zabezpieczeniami przeciwbotowymi pod Przema ;) W efekcie, są trzy zabezpieczenia:
- Captcha - kod do przepisania z obrazka,
- Zabezpieczenie Drag'n - przytrzymaj i przesuń przedmiot do koła,
- Zabezpieczenie Tekstowe - wpisz poprawną odpowiedź na postawione pytanie.
Wszystko wyjaśnią Wam screeny w załączniku.

Zabezpieczenia chronią takie miejsca na forum jak:
- szybka rejestracja,
- rejestracja,
- szybka odpowiedź pod tematem (do wybrania - wyświetla się dla: Gości / Zarejestrowanych / Gości i Zarejestrowanych),
- odpowiadanie/pisanie nowego tematu - posting.php (do wybrania - wyświetla się dla: Gości / Zarejestrowanych / Gości i Zarejestrowanych),
- prywatne wiadomości.


W panelu administratora mamy pełną kontrolę nad wszystkimi zabezpieczeniami. Tam ustawiamy, gdzie dane zabezpieczenie ma się wyświetlać. W PA dodajemy/usuwamy/edytujemy też pytania, na które trzeba udzielić poprawnej odpowiedzi, ustawiamy też czy wielkość liter ma znaczenie w odpowiedzi użytkownika.

Jeśli chodzi o ustawienia samej Captchy to należy to robić z głową bo złe ustawienia mogą spowodować, iż captcha wcale się nie wyświetli lub będzie wręcz nie do rozszyfrowania przez użytkowników. Najważniejsze o czym musimy pamiętać to:
- kolor tła musi być mocno kontrastowy z tłem liter,
- wielkość czcionek nie może być zbyt mała (użytkownik się nie rozczyta), ale też nie może być zbyt duża bo znaki nie pomieszczą się na obrazie,
- linia, przechodząca przez środek napisu nie może być zbyt gruba (zasłoni napis), ale nie może też być zbyt cienka (nie będzie spełniała swojej funkcji). Linia powinna być mniej więcej takiej grubości jak sama czcionka.

Pamiętajcie! Jeśli ktoś będzie korzystał z pytań to standardowe zmieńcie na jakieś swoje + dorzućcie kilka pytań dodatkowych. Pytania są losowane.

Problemy oraz propozycje proszę zgłaszać pod tematem ;)

Boltex - 10-01-2013, 18:37

Majkelo, na pebie widziałem podobną modyfikację ;) Gdy znajdę czas postaram się ją przetestować ;)
Majkelo - 10-01-2013, 18:53

Boltex napisał/a:
Majkelo, na pebie widziałem podobną modyfikację ;) Gdy znajdę czas postaram się ją przetestować ;)


Super ;)

Pawlok - 11-01-2013, 12:55

Ja ja juz instaluhe u siebie i napisze co i jak :)

EDIT

Dziala swietnie. Ale przydało by sie zeby przy pisaniu tematu captha by była tylko do 5 tematow napisanych danego usera zeby nie byla potem wymagana.

Majkelo - 11-01-2013, 14:52

Pawlok napisał/a:
Ale przydało by sie zeby przy pisaniu tematu captha by była tylko do 5 tematow napisanych danego usera zeby nie byla potem wymagana.


W wolnym czasie dodam oddzielną instrukcję do tego, z zarządzaniem w PA.

Pawlok - 13-01-2013, 00:22

Teraz zauważyłem ze przy pisaniu nowego tematu jak sie nawet nie wpisze i nie doda obrazka to i tak dodaje temat. A rejestracja działa bez problemu.
Majkelo - 13-01-2013, 00:39

Pawlok napisał/a:
Teraz zauważyłem ze przy pisaniu nowego tematu jak sie nawet nie wpisze i nie doda obrazka to i tak dodaje temat. A rejestracja działa bez problemu.


Modyfikację mam zainstalowaną na http://majkelo.xaa.pl/, jednak podany wyżej problem tam nie występuje. Sprawdź pliki.

Pawlok - 13-01-2013, 11:03

Zrobilem według instrukcji. Nawewt sie nie da wylaczyc w pianiu tematu bo ustawilem na nie ale dalej to pokazuje.

I przy edycji tematu jak sie wcisnie wyslij wyskakuje ze nie wstawiono obrazka w kółko a wogole nie wyswietla go.

Majkelo - 13-01-2013, 12:22

Cholera, faktycznie. Przy filtrowaniu danych sprawdzam tylko czy captcha jest włączona, ale nie sprawdzam dla kogo (gość/zarejestrowany). I tym oto sposobem jest błąd bo captcha się nie wyświetla, a po wciśnięciu submita sypie błędami bo warunek sprawdzający TYLKO czy captcha jest włączona się spełnia. Spróbuj w posting.php to:

Kod:
            if ( $board_config['captcha_posting'] && strtolower(trim($_POST['validation'])) !== $reg_key )
            {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_reg_key'];
            }
            if ( $board_config['captcha_dd_posting'] && !$captcha_dd )
            {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_captcha_dd'];
            }


zmienić na:

Kod:
            if ( $board_config['captcha_posting'] && (($board_config['captcha_posting_for'] == '0' && !$userdata['session_logged_in']) || ($board_config['captcha_posting_for'] == '1' && $userdata['session_logged_in'] && $userdata['user_level'] == USER && !$userdata['user_jr']) || ($userdata['user_level'] == USER && !$userdata['user_jr'] && $board_config['captcha_posting_for'] == '2')) && strtolower(trim($_POST['validation'])) !== $reg_key )
            {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_reg_key'];
            }
            if ( $board_config['captcha_dd_posting'] && (($board_config['captcha_dd_posting_for'] == '0' && !$userdata['session_logged_in']) || ($board_config['captcha_dd_posting_for'] == '1' && $userdata['session_logged_in'] && $userdata['user_level'] == USER && !$userdata['user_jr']) || ($userdata['user_level'] == USER && !$userdata['user_jr'] && $board_config['captcha_dd_posting_for'] == '2')) && !$captcha_dd )
            {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_captcha_dd'];
            }

Pawlok - 13-01-2013, 23:12

Dalej to samo
Majkelo - 14-01-2013, 15:19

Trzeba znaleźć w quick_reply.php i posting.php WSZYSTKIE poniższe fragmenty (występują one od 6 do 4 razy w pliku):

Kod:
($board_config['captcha_question_posting_for'] == '2')


i zamienić to na:

Kod:
($userdata['user_level'] == USER && !$userdata['user_jr'] && $board_config['captcha_question_posting_for'] == '2')


znaleźć:

Kod:
($board_config['captcha_posting_for'] == '2')


i zmienić na:

Kod:
($userdata['user_level'] == USER && !$userdata['user_jr'] && $board_config['captcha_posting_for'] == '2')


i znaleźć:

Kod:
($board_config['captcha_dd_posting_for'] == '2')


zmienić na:

Kod:
($userdata['user_level'] == USER && !$userdata['user_jr'] && $board_config['captcha_dd_posting_for'] == '2')


Zapomniałem, że jeśli zaznaczymy w PA 'Dla gości i zarejestrowanych' to trzeba jeszcze sprawdzić czy to czasem nie jest admin/jr/mod :mrgreen:

Paczka jest poprawiona, zawiera poprawkę z tego posta oraz z mojego poprzedniego posta. Teraz powinno już śmigać.

Bloodson212 - 14-01-2013, 15:30

Majkelo, dobra robota, takiej modyfikacji brakowało :)
Zaraz sprawdzam :)
Szacun dla cb

Pawlok - 15-01-2013, 19:32

Edytowałem ten quick_reply.php ale dalej uzytkownik moze pisac bez wrzucenia obrazka w kolo i dlaej przy edycji postu przez uzytkownika i po wcisnieciu wyslij wyskakuje
Cytat:
Błędne przesunięcie przedmiotu do koła!
przy edycji postu wogole nie pokazuje pola uwierzytelnienia zeby przesunac.
Majkelo - 15-01-2013, 19:49

Miałeś edytować jeszcze posting.php, quick_reply.php odpowiada tylko za wyświetlanie zabezpieczeń w szybkiej odpowiedzi, weryfikacja wszystkiego jest w posting.php, więc pominąłeś najważniejszy plik.
Pawlok napisał/a:

przy edycji postu wogole nie pokazuje pola uwierzytelnienia zeby przesunac.


Zabezpieczenia pokazują się przy pisaniu nowego tematu i odpowiadaniu w temacie. Przy edycji zabezpieczeń nie ma.

Pawlok - 16-01-2013, 12:30

Majkelo napisał/a:
Przy edycji zabezpieczeń nie ma.


Ale przy edytowaniu postu przez uzytkownika i probie wyslania wyskakuje to:



Powered by phpBB modified by Przemo © 2003 phpBB Group