2016-02-15 16 views
37

Firebase udostępnia back-end bazy danych, dzięki czemu programiści mogą skupić się na kodzie po stronie klienta.Jak ograniczyć modyfikację danych Firebase?

Więc jeśli ktoś bierze moją bazę ogniową uri (na przykład, https://firebaseinstance.firebaseio.com), rozwijaj na niej lokalnie.

Czy mogliby oni utworzyć kolejną aplikację z mojej instancji Firebase, zarejestrować się i uwierzytelnić się, aby odczytać wszystkie dane z mojej aplikacji Firebase?

Odpowiedz

38

Dziękuję wam za tę dyskusję. Jednak chciałem dodać szczegół.

@Frank van Puffelen,

Wspomniałeś ataku typu phishing. W rzeczywistości istnieje sposób, aby to zabezpieczyć.

Jeśli logujesz się do konsoli Menedżera interfejsu API googleAPIs, masz możliwość zablokowania aplikacji odsyłającej HTTP, z której aplikacja będzie przyjmować żądania.

  1. wizyta https://console.developers.google.com/apis
  2. idź do Firebase projektu
  3. Idź do poświadczenia
  4. Pod klucze API, wybierz przycisk Browser skojarzony z Firebase projektu (powinny mieć ten sam klucz jako klucz API używanego aby zainicjować Firebase app.)
  5. obszarze „Akceptuj żądania od tych kierujących HTTP (strony wWW), wystarczy dodać adres URL swojej aplikacji.

To powinno zezwalać tylko białej domenie na używanie Twojej aplikacji.

ta jest także opisana tutaj w Firebase uruchom kontrolnej tutaj: https://firebase.google.com/support/guides/launch-checklist

Może Firebase dokumentacja mogła uczynić to bardziej widoczne lub automatycznie zablokować domenę domyślnie i wymaga od użytkowników, aby umożliwić dostęp?

Jeszcze raz dziękuję!

+1

Kiedy wchodzę do konsoli Google API, nie widzę opcji blokowania strony wywołującej HTTP. Zrzut ekranu będzie pomocny. thx – rattanak

+0

Czy próbowałeś wykonać powyższe kroki? Powinno cię tam zabrać. Ze względów bezpieczeństwa nie zamierzam robić screencapów. Pamiętaj, aby wyszukać klucz przeglądarki. powodzenia. – prufrofro

+2

Co zrobić, gdy korzystasz z bazy Firebase z hybrydową aplikacją mobilną, używając struktury jonowej, jak może działać lista biała? Jakieś sugestie? – Dinana

23

Fakt, że ktoś zna Twój adres URL, nie stanowi zagrożenia dla bezpieczeństwa.

Na przykład: Nie mam problemu z informacją, że mój bank hostuje swoją stronę internetową na stronie bankofamerica.com i mówi tam o protokole HTTP. O ile nie znasz również poświadczeń, których używam, aby uzyskać dostęp do tej witryny, znajomość adresu URL nic Ci nie da.

Aby zabezpieczyć dane, bazy danych powinny być chronione:

  • reguły poprawności, które zapewniają wszystkie dane przylega do struktury, które chcesz
  • zasady autoryzacji w celu zapewnienia, że ​​każdy bit danych może być tylko przeczytane i zmodyfikowane przez autoryzowanych użytkowników:

Wszystko to jest zawarte w Firebase documentation on Security & Rules, co bardzo polecam.

Zgodnie z tymi regułami bezpieczeństwa, jedynym sposobem, w jaki aplikacja innej osoby może uzyskać dostęp do danych w bazie danych, jest kopiowanie funkcjonalności aplikacji, aby użytkownicy logowali się do swojej aplikacji zamiast swoich i zaloguj się/przeczytaj z/napisz do swojej bazy danych; w zasadzie atak typu phishing. W takim przypadku nie ma problemu z bezpieczeństwem w bazie danych, chociaż prawdopodobnie nadszedł czas, aby zaangażować niektóre organy.

+1

niezupełnie odpowiedź szukam. Pozwól, że zapytam cię w inny sposób. Załóżmy, że podałem ten URL do mojej bazy firewall: https: // tinderclone.firebaseio.com/'i' https: // tinderclone.firebaseio.com/profiles.json'. Są to prawdziwa baza danych Firebase. Czy możesz rozwinąć z niego aplikację, tworząc formularz rejestracji i formularz logowania z e-mailem. Ponieważ moja aplikacja pozwala każdemu zarejestrować się za pomocą poczty e-mail, po zarejestrowaniu się będzie można odczytać wszystkie dane? Zadam ci kolejne pytanie. Dzięki – rattanak

+2

To zależy od sposobu zabezpieczenia bazy danych. Po prostu dodanie '" .read ": false' uniemożliwi każdemu zobaczenie danych. Prawdopodobnie chcesz pozwolić na nieco więcej, ale wszystko zależy od twojego przypadku użycia. Zabezpieczenie danych jest zawarte w [Dokumentach Firebase dotyczących bezpieczeństwa i reguł] (https://www.firebase.com/docs/security/). –

1

Odnośnie Autentyczna białego pozycja dla aplikacji mobilnych, gdzie nazwa domeny nie ma zastosowania, Firebase mieć

1) SHA1 fingerprint dla Androida i

2) App Store ID and Bundle ID and Team ID (if necessary) dla iOS

, które należy skonfigurować w konsoli Firebase.

Z tego zabezpieczenia, ponieważ walidacja jest nie tylko jeśli ktoś ma prawidłowy klucz API, Autentyczna domenę, etc, ale także, czy to pochodzące z naszych autoryzowanych aplikacji i domain name/HTTP referrer in case z Web.

Powiedział, że nie musimy się martwić, jeśli klucz API i inne parametry połączenia są narażone na działanie innych.

Fore więcej informacji, https://firebase.google.com/support/guides/launch-checklist

Powiązane problemy