Skocz do zawartości

KLogin - Logowanie na twój serwer!


Rekomendowane odpowiedzi

Witaj!

Chciałbym zaprezentować ci mój skrypt na logowanie

Co posiada?

- Hashowanie haseł (kodowanie ich)

- Rejestracja z użyciem captchy

- Logowanie

- Plik YML

Gdy wchodzisz chowane są:

- Życie

- Głód

- Ekwipunek

- Pozycja (teleportuje do miejsca które możesz ustawić. Po zalogowaniu wraca do miejsca wylogowania)

Za nim się zalogujesz zablokowane jest:

- Wyrzucanie

- Podnoszenie

- Pisanie na chacie

- Używanie komend

- Poruszanie się

- Niszczenie bloków

- Stawianie bloków

TO DO:

- Plik messeges do zmiany wiadomości!
Changelog:
1.0
- Wypuszczenie skryptu
2.0

- Dodano config.yml!

- Kod został przepisany!

- Usunięto komendę /logout!

KOD:
Komendy:
Spoiler

(NAZWA KOMENDY) - (ALIASY) (UPRAWNIENIE) (OPIS)

Login - [l,zaloguj] [brak] Pozwala na zalogowanie.

Register - [reg,zarejestruj] [brak] Pozwala na zarejestrowanie.

Unregister (hasło/gracz) - [odrejestruj] [jeżeli argumentem jest gracz (klogin.odrejestruj)] Pozwala na odrejestrowanie siebie poprzez podanie hasła lub odrejestrowania innego gracza poprzez podanie nicku.

Ustawpoczekalnie - [brak] [klogin.ustawpoczekalnie] Pozwala na ustawienie miejsca do którego jest teleportowany gracz przed zalogowaniem.

Jeżeli o czymś zapomniałem piszcie niżej.

Edytowane przez K0dziakOfSky
Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/
Udostępnij na innych stronach

14 minut temu, K0dziakOfSky napisał:

Losowy kod liczb i liter który musisz przepisać razem z hasłem podczas rejestracji

Takie coś nazywa się captha, nie captacha.

Skrypt nie jest taki zły, dodałbym do niego jeszcze jakąś sól do haseł graczy aby na podstawie hashów nie dało się stwierdzić, czy dwaj gracze mają takie same hasła.

Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121014
Udostępnij na innych stronach

No ładnie moja komenda na rejestracja wygląda :) 
 

/reg haslo <none>

Nie ma potwierdzenia hasła, nie ma wsparcia UUID ani zapisu do MySQL/YAML.
 

&8==--=--==&9GenMC&8==--=--==

To niezła konfiguracja :) 
Zapoznaj się z SSCC
 

set {captcha.znak1} to 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or "a" or "A" or "b" or "B" or "c" or "C" or "d" or "D" or "e" or "E" or "f" or "F" or "g" or "G" or "h" or "H" or "k" or "K" or "l" or "L" or "m" or "M" or "n" or "N" or "o" or "O" or "p" or "P" or "q" or "Q" or "r" or "R" or "s" or "S" or "t" or "T" or "u" or "U" or "v" or "V" or "w" or "W" or "x" or "X" or "y" or "Y" or "z" or "Z"
set {captcha.znak2} to 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or "a" or "A" or "b" or "B" or "c" or "C" or "d" or "D" or "e" or "E" or "f" or "F" or "g" or "G" or "h" or "H" or "k" or "K" or "l" or "L" or "m" or "M" or "n" or "N" or "o" or "O" or "p" or "P" or "q" or "Q" or "r" or "R" or "s" or "S" or "t" or "T" or "u" or "U" or "v" or "V" or "w" or "W" or "x" or "X" or "y" or "Y" or "z" or "Z"
set {captcha.znak3} to 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or "a" or "A" or "b" or "B" or "c" or "C" or "d" or "D" or "e" or "E" or "f" or "F" or "g" or "G" or "h" or "H" or "k" or "K" or "l" or "L" or "m" or "M" or "n" or "N" or "o" or "O" or "p" or "P" or "q" or "Q" or "r" or "R" or "s" or "S" or "t" or "T" or "u" or "U" or "v" or "V" or "w" or "W" or "x" or "X" or "y" or "Y" or "z" or "Z"
set {captcha.znak4} to 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or "a" or "A" or "b" or "B" or "c" or "C" or "d" or "D" or "e" or "E" or "f" or "F" or "g" or "G" or "h" or "H" or "k" or "K" or "l" or "L" or "m" or "M" or "n" or "N" or "o" or "O" or "p" or "P" or "q" or "Q" or "r" or "R" or "s" or "S" or "t" or "T" or "u" or "U" or "v" or "V" or "w" or "W" or "x" or "X" or "y" or "Y" or "z" or "Z"                        
set {captcha.znak5} to 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or "a" or "A" or "b" or "B" or "c" or "C" or "d" or "D" or "e" or "E" or "f" or "F" or "g" or "G" or "h" or "H" or "k" or "K" or "l" or "L" or "m" or "M" or "n" or "N" or "o" or "O" or "p" or "P" or "q" or "Q" or "r" or "R" or "s" or "S" or "t" or "T" or "u" or "U" or "v" or "V" or "w" or "W" or "x" or "X" or "y" or "Y" or "z" or "Z"
set {captcha.znak6} to 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or "a" or "A" or "b" or "B" or "c" or "C" or "d" or "D" or "e" or "E" or "f" or "F" or "g" or "G" or "h" or "H" or "k" or "K" or "l" or "L" or "m" or "M" or "n" or "N" or "o" or "O" or "p" or "P" or "q" or "Q" or "r" or "R" or "s" or "S" or "t" or "T" or "u" or "U" or "v" or "V" or "w" or "W" or "x" or "X" or "y" or "Y" or "z" or "Z"
set {captcha.kod.%player%} to "%{captcha.znak1}%%{captcha.znak2}%%{captcha.znak3}%%{captcha.znak4}%%{captcha.znak5}%%{captcha.znak6}%"

No to grubo XD Takie kody (@bopke CAPTCHA = Completely Automated Public Turing test to tell Computers and Humans Apart więc obaj zrobiliście błąd :P CAPTHA to tylko przykład takiej zabaweczki)
 

Oceniłbym to na takie 6/10 ale dam 4/10 bo mnie boli brak konfiguracji 

Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121063
Udostępnij na innych stronach

Zacznijmy od ocenienia pomysłu. Idea fajna, jednak wykonanie (mówiąc brzydko) [ciach]. Skrypty nie powinny pełnić zadanie autoryzacji, czy w jakikolwiek sposób zabezpieczać serwer. Wystarczy osoba z wyższym uprawnieniem, wpisze komende /sk disable all i po autoryzacji. Przemyśl przepisanie tego do pluginu - wyjdzie tylko na dobre.

Teraz kod. Dawno Skripta nie tykałem (chyba że API, to całkiem niedawno), jednak kojarze jeszcze większość elementów. Tutaj ze zastosowaniem funkcji, lambd i predykatów mógłbyś skrócić i uprościć kod o jakieś ~50%. Brakuje mi tutaj także zapisu do bazy danych (mowa o hasłach, UUID etcetera). Nie stosujesz się także do zasad SSCC. 

//Michma1707

Edytowane przez Nieaktywny
Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121178
Udostępnij na innych stronach

Za około 1h wstawię poprawioną wersję.

 

Nowa wersja!

Co się zmieniło?

- Dodano config.yml!

- Kod został przepisany!

- Usunięto komendę /logout!

KOD:

https://code.skript.pl/IAvJuSaI/

 

Łączę //Michma1707 

Edytowane przez K0dziakOfSky
Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121187
Udostępnij na innych stronach

Bieremy na tapet.

Spoiler

 

1.

https://code.skript.pl/Dl0ntcjr/

2.

Nie ma tu pełnej customizacji.

-> Brakuje mi dowolności co do długości captcha
-> Brakuje mi dowolności co do znaków w captcha (np. nie mogę sobie dodać innych dziwnych znaków)
-> Jest przymus ustawiania poczekalni; co jesli ktoś nie chce teleportacji do poczekalni (są takie serwery niskich standardów, gdzie tam gdzie się wylogowałeś się rejestrujesz). Co wtedy z życiem - takiego delikwenta można zabić. Przyjrzyj się temu
-> Nie ma możliwości ustawiania czasu logowania
-> Nie można się odrejestrować niebędąc zalogowanym. Co jesli ktoś wbił tylko po to, by zwolnić non-premiumowy nick ._. (sam miałem kiedyś sytuację na serwie, że gościu grał na moim nicku. Poprosiłem go uprzejmie o unregister i zrobił to od razu w zasadzie, zostawiając itemy na koncie. Skończył grę na serwie XD)
-> Skrypt nie uwzględnia też światów, przez co teleportacja gracza do poczekalni a później na pozycję zapisaną skutkować może teleportacją na daną lokację w świecie, w którym jest poczekalnia (tu nie mam pewności czy tak to działa, bo nie wiem czy


set {zmienna} to player's location

uwzględnia świat czy nie; do przetestowania

 

 

A poza tym - jest  hashowanie, więc jest git :v

3. Dodałbym jeszcze solenie hasła :)

Poza tym jest ok ._.

Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121249
Udostępnij na innych stronach

Dzięki że nie dałeś mi hejtu na twarz aktualnie poprawiam bo zapomniałem o paru sprawach podczas przepisywania i dzięki za porady.

A i tak jeszcze z innej beczki oco chodzi z tym soleniem bo nie ogarniam?

Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121251
Udostępnij na innych stronach

Skrypt nawet nawet, ale brakuje... np. możliwość połączenia go z forum (tak to możliwe, sam to zrobiłem), nie widzę w kodzie np. on damage, czyli można osobe zabić jeżeli się loguje, zablokowałbym możliwość otwierania eq.

Pozdrawiam

Edytowane przez ShroN
Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121253
Udostępnij na innych stronach

6 minut temu, ShroN napisał:

nie widzę w kodzie np. on damage, czyli można osobe zabić jeżeli się loguje,

 

Bo skrypt zakłada, że przed zalogowaniem zostaniesz teleportowany do lobby, gdzie jesteś bezpieczny

@K0dziakOfSky

Zacytuję @TheMolkaPL bo raz coś mądrego napisał na forum, więc trzeba czerpać!

Cytuj

Dodatkowo, dla większego bezpieczeństwa używa się też tak zwanej soli (po angielsku salt). Jest to losowy ciąg znaków często o długości ponad 60 znaków, który jest unikalny dla danego użytkownika w bazie danych. Dzięki soli hash hasła nie jest bezpośrednio zahashowanym hasłem, lecz "sklejką" dwóch różnych danych. Może to wyglądać na przykład tak "salt + hasło", np "eft4fe542fgh+haslo123". Dzięki temu nie da się wykryć, że wielu użytkowników używa tych samych haseł, ponieważ ich hashe są skrajnie różne.

 
Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121256
Udostępnij na innych stronach

 

2 minuty temu, PoweredDragon napisał:

Bo skrypt zakłada, że przed zalogowaniem zostaniesz teleportowany do lobby, gdzie jesteś bezpieczny

Znaczy nie do końca po prostu podczas pisania skryptu od nowa zapomniałem o tej funcji :(

Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121259
Udostępnij na innych stronach

[...] Skrypty nie powinny pełnić zadanie autoryzacji, czy w jakikolwiek sposób zabezpieczać serwer. Wystarczy osoba z wyższym uprawnieniem, wpisze komende /sk disable all i po autoryzacji. Przemyśl przepisanie tego do pluginu - wyjdzie tylko na dobre.

[...] Tutaj ze zastosowaniem funkcji, lambd i predykatów mógłbyś skrócić i uprościć kod o jakieś ~50%. Brakuje mi tutaj także zapisu do bazy danych (mowa o hasłach, UUID etcetera). Nie stosujesz się także do zasad SSCC.

To po pierwsze.

2. będąc niezalogowanym nadal możemy narobić różne rzeczy, np. poprzestawiać przedmioty w ekwipunku.
3. wykorzystanie eventu on any move w celu blokady poruszania się to kiepski pomysł. jeżeli kilka weszło by na serwer i zaczęło machać myszką na boki i próbować się ruszyć, serwer mógł by nie wyrobić. W tym celu lepiej co jakiś czas sprawdzić, czy odległość między pozycją gracza a punktem spawnu jest odpowiednia. Jeżeli za duża, teleportować go spowrotem.
4. osoby z dostępem do logów bądź konsoli serwera widzą wszystkie hasła graczy. porażka.
5. brak zastosowania się do zasad SSCC.

Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121260
Udostępnij na innych stronach

1 minutę temu, K0dziakOfSky napisał:

Norbi jak ty chcesz przestawiać przedmioty w ekwipunku jak ich tam nie ma?

a no rzeczywiście, czyścisz mu ekwipunek.

Odnośnik do komentarza
https://skript.pl/temat/17690-klogin-logowanie-na-tw%C3%B3j-serwer/#findComment-121263
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...