W klasie SignalR Hub możesz zadzwonić pod numer Context.ConnectionId
dla użytkownika. Szukam ich przechowywania w Dictionary<string, string>
w celu połączenia użytkowników. Czy istnieje ryzyko związane z lukami w zabezpieczeniach polegającymi na zwracaniu klientów klienta innego użytkownika do klienta użytkownika?Czy istnieje ryzyko zwrócenia identyfikatora połączenia innego użytkownika do klienta?
14
A
Odpowiedz
25
Tak, robimy to w niektórych z naszych próbek, ale jest źle. Jeśli wycieksz identyfikator połączenia, ludzie będą mogli wysyłać/odbierać wiadomości w twoim połączeniu. Utwórz inny unikalny identyfikator i przechowuj odwzorowanie między identyfikatorem a identyfikatorem połączenia wewnętrznie, aby móc je odwzorować.
Jest to w zasadzie ten sam pomysł, co bilet autoryzacji formularzy. Oczywiście, że jest zaszyfrowany, ale jeśli ktoś go znajdzie, może podszywać się pod Ciebie bez względu na to.
Zobacz próbkę tej logiki w MessengR. https://github.com/davidfowl/MessengR/blob/master/MessengR/Hubs/Chat.cs#L67
Powiązane problemy
- 1. Czy istnieje ryzyko wstrzyknięcia, jeśli dane wprowadzone przez użytkownika nie zostały przesłane do bazy danych?
- 2. Czy istnieje polecenie zwrócenia właściciela pliku?
- 3. Czy istnieje interfejs użytkownika przyjazny dla klienta Team Foundation Server?
- 4. Czy istnieje ryzyko, że klejnot z rubinu działa jak trojan?
- 5. Zmiana identyfikatora cienkiego klienta Oracle JDBC
- 6. Czy istnieje ryzyko związane z używaniem polyfill bind MDN?
- 7. Zniszcz sesję innego użytkownika wiosną
- 8. Przypisywanie identyfikatora użytkownika do klucza obcego = null
- 9. Czy istnieje niebezpieczeństwo utworzenia UUID po stronie klienta JavaScript?
- 10. Czy istnieje sposób na przetestowanie połączenia SQLAlchemy?
- 11. Outlook - Przeczytaj kalendarz innego użytkownika
- 12. Jakiekolwiek ryzyko związane z Macports?
- 13. Odwołując się do identyfikatora artefaktu słoika zależności użytkownika od persistence.xml
- 14. Aplikacja Facebook: pobranie nazwy użytkownika z identyfikatora
- 15. Czy istnieje biblioteka klienta MS-DRM dla systemu Linux?
- 16. Czy mogę zmusić klasę wykonawczą do zwrócenia obiektu własnego typu?
- 17. Najlepsza praktyka w utrzymywaniu identyfikatora użytkownika (MVC)
- 18. Czy ten wątek połączenia klienta JAX-WS jest bezpieczny?
- 19. Czy replika pymongo ustawia automatyczną awarię obsługi połączenia klienta?
- 20. Uzyskanie identyfikatora właściciela treści YouTube danego użytkownika
- 21. Postgresql - limit połączenia dla użytkownika
- 22. Czy istnieje tekstowy interfejs użytkownika mysql?
- 23. W jaki sposób dołączasz dane klienta do połączenia z serwerem?
- 24. Zdejmowanie blokady TFS innego użytkownika
- 25. Ustal, czy proces istnieje z jego identyfikatora procesu
- 26. codeigniter ion auth uzyskanie identyfikatora użytkownika
- 27. Maksymalne połączenia klienta Astyanax na węzeł?
- 28. Czy istnieje sposób uzyskania identyfikatora kontaktu książki adresowej z identyfikatora kontaktu Usługi synchronizacji?
- 29. Bezpieczne stronie klienta uwierzytelniania użytkownika couchApp/couchdb
- 30. Jak uzyskać klienta użytkownika na iOS?
Tak więc zalecenie byłoby ... –
Jest tam, pozwól mi je przekształcić "Utwórz inny identyfikator, który jest unikalny i przechowuj mapowanie z identyfikatora połączenia do twojego identyfikatora wewnętrznie, aby móc je odwzorować." – davidfowl
Ahhh gotcha! ta :) –