2016-11-16 13 views
6

Załóżmy, że tworzę aplikację natywnie reagującą z firebase, która zakłada posiadanie tajnego klucza w aplikacji. Czy ktoś może ukraść klucz? Jeśli tak, to w jaki sposób mogę go chronić?Jak bezpiecznie przechowywać tajne klucze po stronie reagowania natywnego klienta?

+0

Mam to samo pytanie. Na przykład, ile bezpiecznego jest użycie https://www.npmjs.com/package/react-native-oauth w React Native apps? –

+0

Nie jestem pewien, również szukając odpowiedzi na to pytanie. Czy możesz zacząć bounty? Nie mogę rozpocząć nagrody z jakiegoś powodu w interfejsie użytkownika. –

+1

Przechowywanie sekretu na urządzeniu nigdy nie jest bezpieczne, niezależnie od tego, jak bardzo je zaciemniasz. Jeśli twój tajny klucz musi pozostać w tajemnicy, umieść go za bezpiecznym serwerem. – jaws

Odpowiedz

1

Nie ma w 100% bezpiecznego sposobu przechowywania niczego ukrytego na urządzeniu, ponieważ nie masz kontroli nad dostępem do źródła. Jedynym sposobem na zagwarantowanie bezpieczeństwa kluczy jest to, aby nigdy nie mieć ich na urządzeniu.

Każde rozwiązanie znaleźć będzie miało wadę, zilustrowany całkiem ładnie przez this article by Michael Ramirez

Trzeba znaleźć równowagę w jaki sposób bezpieczny naprawdę trzeba te klucze być.

Na przykład w systemie Android przechowujemy niektóre klucze, którymi kierujemy się mniej w przypadku Google i innych interfejsów API w pliku ciąg res/values ​​/ secrets.xml, który nie jest objęty kontrolą wersji. Łatwo jest komuś o strings out_app.api, ale już zdecydowaliśmy się mniej dbać o zabezpieczanie tych kluczy.

<resources> 
    <string name="google_api_key">OurApiKey</string> 
</resources> 

Jeśli pracujesz z ReactNative na Androida & zależności od rodzaju klucza, który chcesz zapisać, można skorzystać z Android Keystore System pomocą Keystore API jednak nie sądzę, to będzie działać do przechowywania Klucze Firebase.

Powiązane problemy