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?
Odpowiedz
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.
- 1. Gdzie przechowywać tajne klucze DJANGO
- 2. Jak bezpiecznie przechowywać klucze szyfrowania w języku Java?
- 3. Produkcja szyn - Jak ustawić tajne klucze?
- 4. Po stronie klienta trwałość (przechowywanie)
- 5. Jak dodać pływające podpowiedzi do reagowania natywnego?
- 6. Pętla w trybie natywnego reagowania
- 7. module.exports po stronie klienta
- 8. Języki po stronie klienta
- 9. Konstrukcje do przechowywania danych po stronie klienta
- 10. Rejestratory po stronie klienta GWT
- 11. Kontroluj obszar dotykowy w trybie natywnego reagowania
- 12. box-shadow: wstawka do native-natywnego reagowania
- 13. jqGrid sortowanie po stronie klienta
- 14. Zintegrowanie sprawdzania po stronie klienta
- 15. przetwarzanie obrazu po stronie klienta
- 16. RegisterOnSubmitStatement po sprawdzeniu poprawności po stronie klienta
- 17. Jak dołączyć javascript po stronie klienta node.js?
- 18. Logika po stronie klienta LUB logika po stronie serwera?
- 19. Wymuszanie uwierzytelniania Facebook: po stronie klienta i po stronie serwera
- 20. Kiedy korzystać po stronie klienta lub po stronie serwera?
- 21. Szyny: Jak bezpiecznie przechowywać hasło pocztowe?
- 22. Jak bezpiecznie przechowywać pliki na serwerze
- 23. Jak modelować przycisk z ikonami w trybie natywnego reagowania
- 24. Jak bezpiecznie przechowywać hasło w kodzie PHP?
- 25. ASP.NET: dodawanie kontrolek po stronie klienta
- 26. Struktury MVC po stronie klienta dla ClojureScript
- 27. Pomiar czasu reakcji serwera (po stronie klienta)
- 28. Uzyskiwanie wyliczeń do wyświetlania po stronie klienta
- 29. Definiowanie rodzajów transportu po stronie klienta
- 30. Paginacja po stronie klienta z jqGrid
Mam to samo pytanie. Na przykład, ile bezpiecznego jest użycie https://www.npmjs.com/package/react-native-oauth w React Native apps? –
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. –
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