Piszę sobie apkę, którą chciałbym nieco bardziej rozpowszechnić, jednak ciągle nie daje mi spać kwestia bezpieczeństwa i danych osobowych.
- RODO, administrator danych osobowych, itp. Czy to mnie dotyczy, jeżeli tak to w jakim stopniu? Aplikacja wymaga logowania, jest opcja logowania przez email + hasło, Google i Facebooka. Wymagam też by użytkownik ustawił sobię jakąś wyświetlaną nazwę, coś co zobaczą też inni użytkownicy. Całość jest zaopiekowana przez Firebase, frontend komunikuje się z Firebase by dostać token, który wysyłany jest na backend gdzie go waliduje za pomocą Firebase. Nie trzymam więc w swojej aplikacji danych osobowych, w bazie zapisuje jedynie ID użytkownika, w API wysyłam też nazwę wyświetlaną użytkownika i tyle.
- Komunikacja backend - frontend - czy warto iść w ciastka httpOnly w których przechowywany będzie token? Czy trzymanie tokenu w localStorage przeglądarki jest w zupełności wystarczające dla aplikacji która ma do czynienia z danymi osobowymi, tyle ile opisałem w punkcie 1?
- Co z długo aktywnymi tokenami? Chciałbym by użytkownik nie musiał się często logować, gdy np. korzysta z aplikacji raz na tydzień. Są jakieś przeciwwskazania by token był ważny np. 7 dni + był odświeżany przy każdym zapytaniu http do usługi? Nawiązując do punktu 2, czy fakt że token jest w ciastku httpOnly albo w localStorage, ma się jakoś do tego jak długo powinien być ważny?
- Firebase wymaga by klucze trzymać po stronie klienta w JSie, czyli każdy może je odczytać. Czy to faktycznie bezpieczne?