Hej, nie wiedziałem za bardzo, w którym dziale to umieścić, więc wleciało tutaj. Bo to dość ogólne chyba pytanie (chyba, że webmastering będzie lepszy).
Problem:
Chcę umieć rozpoznać komputer użytkownika aplikacji webowej. Tzn. użytkownik loguje się pierwszy raz - jego maszyna jest automatycznie rejestrowana. Użytkownik loguje się kolejny raz, aplikacja sprawdza, czy loguje się z tej samej maszyny. Coś takiego jak w bankach teraz się spotyka. Jeśli zalogujesz się do mBanku z innego urządzenia, dostaniesz alert.
Zadałem to pytanie na stacku, ale nie dostałem żadnej konkretnej odpowiedzi: https://stackoverflow.com/questions/59705853/netcore-razor-device-registration-in-www
Więc wymyśliłem sobie coś takiego (na podstawie materiałów, które czytałem):
Biorę różne cechy z komputera klienta:
- nazwa systemu operacyjnego
- nazwa przeglądarki
- HTTP-ACCEPT
- rozdzielczość ekranu
- strefa czasowa
Każda z tych cech ma przyporządkowane prawdopodobieństwo zmiany (zgodnie z tym: https://wiki.mozilla.org/Fingerprinting). Jeśli wyjdzie mi z porównania, że maszyna, z której aktualnie się użytkownik loguje jest różna o większy próg niż założony, to wtedy jest to inna maszyna. I to pewnie w miarę będzie działać. Problem pojawi się w momencie, gdy użytkownik loguje się na drugiej maszynie, która ma taką samą konfigurację albo tylko leciutko zmienioną.
Wtedy z porównania mi wyjdzie, że to ta sama maszyna, co ostatnio.
Więc pojawia się potrzeba jakiegoś dodatkowego rozróżnienia. Jedyne, co mi przyszło do głowy to np. ciasteczko dodatkowe z ID maszyny zapisanej w bazie danych (guid). Ale co w momencie, gdy użytkownik usunie ciasteczka? Będzie problem. A w moim założeniu, user może używać aplikacji tylko z jednego kompa (ograniczenie "marketingowe").
Nie chcę używać ever cookies, bo to jest źle widziane i zaraz nie będzie dostępne. Jak byście podeszli do takiego problemu?