2017-09-11 52 views
7

Obecnie korzystamy z raportów Firebase Crash w naszej aplikacji - i zauważyliśmy coś dziwnego. Aby pomóc nam w debugowaniu wszelkich awarii, używamy FirebaseCrash.log do dodawania informacji o żądaniach/odpowiedziach serwerów wysyłanych do naszych serwerów.Dzienniki awarii Firebase z adresami URL redaktowanymi

Ale ostatnio zauważyliśmy, że dzienniki są redagowane. Z tego, co możemy powiedzieć, że to się dzieje po stronie serwera, pozostawiając nas z bali, które wyglądają tak:

7: 51: 11,914 AM gmp_nav20_crash < - 201 https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC] (287ms, nieznany długości ciała)

7: 51: 11,626 AM gmp_nav20_crash -> POST https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC] HTTP/1.1 (ciało 67-bajtowy)

Czy istnieje jakiś sposób możemy wyłączyć to przynajmniej dla niektórych domen? To sprawia, że ​​śledzenie dokładnie tego, co poszło źle, jest trudniejsze niż powinno, i nie zapewnia żadnych znaczących zabezpieczeń dla użytkownika, który widzę.

+0

Obecnie nie sposób skonfigurować to. Istnieje ryzyko, że wiele adresów URL może zawierać poufne informacje, a biblioteka nie ma takiej możliwości. Błądzi po stronie bezpieczeństwa dla użytkownika końcowego. –

+0

Dzięki, Doug! Jaki jest właściwy sposób przesłania żądania funkcji? Byłoby to z pewnością interesujące dla adresów URL, które kontrolujemy (i które można bezpiecznie ujawnić). – tmtrademark

+0

https://firebase.google.com/support/contact/bugs-features/ –

Odpowiedz

0

nawrócony URL ciąg na ciąg base64 i wyślij zakodowany ciąg

 public static String toBase64(String stringToEncode){ 
     String base64 = null; 
     try { 
      byte[] data = stringToEncode.getBytes("UTF-8"); 
      base64 = Base64.encodeToString(data, Base64.DEFAULT); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
     return base64; 
    } 

FirebaseCrash.report(new Exception("Error while downloading image with URL (Base 64 encoded):" + StringUtils.toBase64(s)));