Brak weryfikacji nicku w oprogramowaniu Discord

in #polish5 years ago (edited)

Użytkownik @rafalski opublikował wpis na łamach którego stwierdził, iż ktoś podszył się pod niego na serwerze Discord polskiej społeczności. Ja zaś spróbuję wyjaśnić dlaczego Discord przez jeden błąd nie powinien zostać dopuszczony do użytku.

1.png

Źródło

Link do tego postu znajdziecie tutaj, a ja zabieram się za wyjaśnienie sprawy trochę pod kątem technicznym.

Discord podczas rejestracji każdego użytkownika generuje dla niego specjalne ID będące identyfikatorem a oprócz tego użytkownik otrzymuje specjalny tag widoczny w aplikacji oraz może dla swojego konta przypisać nick. Nick można zmieniać w sposób globalny ale też można go zmienić dla poszczególnego serwera. Mając nick globalny np. Alicja na jednym serwerze możemy być widoczni jako Stefan a na drugim jako StarszaPaniHot65. Oczywiście możliwe jest też ustawienie swojego avatara ale tylko w sposób globalny - jeden dla wszystkich serwerów.

Mając wersję premium możliwa jest również zmiana taga (więc po co on jest?) ale do czego zmierzam - zmiana nicku nie jest w żaden sposób weryfikowana.

Jak to powinno działać?

Każda zmiana nicku powinna być weryfikowana. Jeśli zmieniamy nick na AlaMaKota a z takim nickiem jest już ktoś na danym serwerze, to powinien pojawić się komunikat iż dany nick jest zajęty (dotyczy to również zmiany nicku dla całego konta). Dodatkowo niedopuszczalna powinna być sytuacja ustawienia tak zwanego pustego nicku, czyli nic nie wpisujemy i aplikacja akceptuje tę sytuację. Oprócz tego obok nicku użytkownika powinien widnieć unikalny adres ID a nie jakiś tag, który można zmieniać.

Jak to działa obecnie?

Obecnie działa to tak, że każdy może zmienić sobie nick na jaki mu pasuje, nie ważne czy w sposób lokalny czy globalny - nie zachodzi żadna walidacja czy wpisywany przez nas nick jest wykorzystywany, czy też nie. Ten błąd powoduje, że dochodzi do takich sytuacji:

4.png

Źródło własne.

5.png

Źródło własne.

Wystarczy teraz tylko wziąć avatar interesującego nas użytkownika, zwyzywać komuś rodzinę do 7 pokolenia wstecz a potem to ta prawdziwa osoba będzie musiała się tłumaczyć z tego, czego nie zrobiła. Oczywiście admini mają logi i mogą wywnioskować kto jest kto jednak pozostali uczestnicy czatu już do takich danych dostępu nie mają.

Błąd ze statusem "wysoki"

Początkowo myślałem, że ten błąd można zaklasyfikować jako średni, ponieważ idzie w miarę łatwy sposób rozpoznać użytkownika po tym tagu ale z racji tego, że jego można też zmienić ten błąd w moich oczach uzyskuje status wysoki. Z takim błędem oprogramowanie w ogóle nie powinno być dopuszczone do fazy produkcyjnej, czyli udostępnione użytkownikom w formie publicznej.

Dotyczy to całego Discorda

W ustawieniach konkretnego serwera można zablokować zmianę nicka, ale ta opcja blokuje tylko zmianę pseudonimu bezpośrednio na serwerze - nic nie stoi na przeszkodzie, aby zmienić nick w sposób globalny na używany przez innego użytkownika. Problem dotyczy całego oprogramowania Discord.

Źródła

Wpis użytkownika @rafalski

Obserwacje własne.

Wsparcie

Podobało się? Obserwuj i wspieraj!

Sort:  

O, znalazłem się w poście :D Podejrzewam, że to screen z czasów gdy dołączałem dopiero do naszego discorda i zarejestrowałem się podwójnie, bo z czymś tam miałem problem i się trochę "zaplątałem". Na obydwu kontach ustawiłem sobie ten sam nick i przez pewien czas pewnie były widoczne obydwa.

Nie, chyba że miałeś ustawiony awatar docbox, który widać przez blur

Ah, rzeczywiście. Czyli jednak to był przykład stworzony przez docboxa.

Dwa te same nicki to moja sprawka, wykonana w celu zrobienia screena. Podmieniać avatara już mi się nie chciało :P.

Warto pamiętać, że podobny błąd jest w Steem Chat (Rocket Chat), ale nie do końca - tam można wybrać taki "string", by nie mógł człowiek odróżnić od prawidłowego. Tak był na Steem Chat Hailmann (duże i)

Dzięki 😁

Posted using Partiko Android

Kompletna bzdura. Włączasz tryb devowy (w opcjach), klikasz PPM i wybierasz opcję copy id.

Sprawa nr. 1

Co ma wspólnego kopiowanie ID z brakiem weryfikacji zajętości nicka?

Sprawa nr. 2

Jest sobie dwóch użytkowników na serwerze, ten sam avatar, ten sam nick, ktoś się pod kogoś podszywa. Jeden z nich ma id 002, drugi 001. W jaki sposób ty, jako zwykły użytkownik bez dostępu do panelu administracyjnego oraz bez dostępu do logów zweryfikujesz, które z nich to konto podszywające się?

Czekam na konkretne rozwiązania.

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.034
BTC 66772.03
ETH 3237.54
USDT 1.00
SBD 4.25