Bezpieczeństwo Hasła i Uwierzytelniania
Każde hasło w VvW jest hashowane przy użyciu bcrypt z czynnikiem roboczym 12. Nigdy nie przechowujemy haseł w postaci jawnej — nie w logach, nie w wyjściu debug, nigdzie. Gdy się rejestrujesz, twoje hasło jest natychmiast hashowane zanim dotknie bazy danych. Hash to to, co żyje na naszych serwerach.
Uwierzytelniamy przy użyciu JWT (JSON Web Tokens) z 24-godzinnym wygasaniem. Tokeny są podpisywane 256-bitowym kluczem tajnym rotowanym co 90 dni. Jeśli się wylogujesz, token jest dodawany do blocklist Redis, więc nie może być ponownie użyty nawet jeśli zostanie przechwycony przed wygaśnięciem.
Nie implementujemy tokenów „zapamiętaj mnie" z długotrwałymi sekretami. Twoja sesja odświeża się przy każdym logowaniu. Jeśli twoje konto kiedykolwiek zostanie skompromitowane, zmiana hasła natychmiast unieważnia wszystkie aktywne sesje.
Zarządzanie Sesjami
Wszystkie akcje gry są walidowane po stronie serwera. Twój klient wysyła żądania; nasz serwer decyduje, czy są one prawidłowe. Klient nigdy nie ma władzy — ma tylko stan wyświetlania. Oznacza to, że nawet jeśli ktoś zmodyfikuje JavaScript swojej przeglądarki, nie może przyznać sobie złota, XP ani przedmiotów.
Każda wrażliwa akcja (Prestiż, duże transakcje złota, ataki PvP) wymaga świeżego żądania tokenu. Krzyżujemy twoje ID postaci z ładunkiem JWT na każdym uwierzytelnionym endpointcie.
Ograniczanie Szybkości i Ochrona Przed Brute Force
Próby logowania są ograniczone do 5 na minutę na IP i 10 na godzinę na nazwę użytkownika. Po 10 nieudanych próbach na pojedynczym koncie wyzwalamy krok weryfikacji e-mail przed zezwoleniem na dalsze próby.
Wszystkie endpointy akcji gry są ograniczone szybkości przez Redis. Na przykład endpoint polowania jest ograniczony do 1 żądania na 800ms na postać. Zapobiega to automatycznym skryptom botowania uzyskującym nieuczciwą przewagę XP/złota.
| Endpoint | Limit Szybkości | Egzekwowanie |
|---|---|---|
| POST /auth/login | 5/min na IP | Przesuwające okno Redis |
| POST /battle/hunt | 1/800ms na postać | Wiadro tokenów Redis |
| POST /arena/attack | 1/5s na postać | Wiadro tokenów Redis |
| POST /shop/buy | 10/min na postać | Licznik Redis |
| POST /trade/create | 5/min na postać | Licznik Redis |
Design Antycheatowy
Najważniejsza zasada antycheat: serwer jest autorytetem, zawsze. Liczby po stronie klienta są tylko do wyświetlenia. Każde obliczenie obrażeń, każda nagroda złota, każdy zysk XP jest obliczany po stronie serwera przy użyciu rzeczywistych statystyk postaci z bazy danych.
Czasy odnowienia są egzekwowane w Redis, nie po stronie klienta. Gdy ukończysz loch, serwer zapisuje last_dungeon_attempt w Redis z TTL. Jeśli spróbujesz uruchomić go ponownie przed wygaśnięciem czasu odnowienia, serwer odrzuca żądanie niezależnie od tego, co twierdzi klient.
Sprawdzenie poprawności statystyk
Każda obliczona statystyka jest sprawdzana granicznie. Jeśli ATK przekroczy 10 000, serwer oznacza konto do przeglądu. Wychwytuje to skrajne przypadki z prób exploitów lub uszkodzenia danych. Nieprawidłowe wartości wyzwalają miękkie zablokowanie oczekując na ręczny przegląd, zamiast pozwolić na utrzymanie uszkodzonego stanu.
Analizujemy wzorce czasu akcji. Prawdziwi gracze mają nieregularne czasy; boty są perfekcyjnie konsekwentne. Konta z podejrzanie regularnymi interwałami żądań (±20ms wariancji przez ponad 200 żądań) są oznaczane do wyzwania CAPTCHA.
Jakie Dane Przechowujemy (i Nie)
Przechowujemy: nazwę użytkownika, e-mail (hashowany do przechowywania), dane postaci, dzienniki gry (typ akcji, znacznik czasu — bez treści), adres IP ostatniego logowania (do wykrywania oszustw, 30-dniowe przechowywanie).
Nie przechowujemy: haseł w postaci jawnej, danych kart płatniczych (Stripe obsługuje wszystkie płatności, przechowujemy tylko status subskrypcji), danych osobowych ani adresów, lokalizacji poza kodem kraju.
Program Odpowiedzialnego Ujawniania
Znalazłeś lukę bezpieczeństwa? Chcemy to usłyszeć od ciebie przed kimkolwiek innym. Nasza polityka odpowiedzialnego ujawniania:
- Zgłoś do security@duskmaw.com z pełnymi krokami reprodukcji
- Potwierdzamy w ciągu 24 godzin i łatamy krytyczne problemy w ciągu 72 godzin
- Reporterzy ważnych, istotnych luk otrzymują nagrody w grze i publiczne uznanie
- Nie podejmujemy działań prawnych przeciwko badaczom działającym w dobrej wierze zgodnie z tą polityką
Nie mamy jeszcze formalnego programu nagród za błędy z nagrodami gotówkowymi — ale budujemy w tym kierunku. Wszystkie prawidłowe zgłoszenia są potwierdzane i nagradzane premium walutą w grze.
Graj z Pewnością
Twoje konto i dane są chronione przez wiele warstw bezpieczeństwa. VvW traktuje bezpieczeństwo poważnie — nie jako funkcję, ale jako fundament.
Stwórz Swoje Konto →