繁体   English   中英

带有URL的Firebase崩溃日志

[英]Firebase Crash Logs with URLs redacted

我们目前在我们的应用中使用Firebase崩溃报告 - 我们注意到一些奇怪的事情。 为了帮助我们调试任何崩溃,我们使用FirebaseCrash.log添加有关服务器请求/响应的信息。

但最近,我们注意到日志正在被编辑。 从我们可以看出,这发生在服务器端,给我们留下如下所示的日志:

7:51:11.914 AM gmp_nav20_crash < - 201 https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC] REDACTED_DOMAIN_NAME https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC] REDACTED_URL_BASIC https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC] (287毫秒,未知长度的身体)

7:51:11.626 AM gmp_nav20_crash - > POST https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC] http / 1.1(67字节正文)

有没有办法我们至少可以禁用某些域? 它可以准确地追踪出现问题的难度,并且没有为我能看到的用户提供任何有意义的保护。

由于上面的评论显示这是不可配置的,并且您希望结果可以从Firebase控制台读取,因此我建议以一种混淆URL的方式处理URL,同时使其成为人类可读的URL。 只需确保您只对非敏感信息执行此操作 - 特别是如果您在欧洲有新的GDPR规定。

它可以很简单:

url.replaceAll("\\.", "[dot]");

但我也建议屏蔽协议(也许还有斜线)

url.replaceAll("https://", "[secure]")
   .replaceAll("http://", "")
   .replaceAll("\\.", "[dot]");

编辑 (回答赏金问题:“根据Firebase政策跟踪Base64编码的网址和域名是否合法?”)

根据Firebase政策页面

您不会将个人身份信息与非个人身份信息合并,除非您有强烈的通知,并且用户事先已经同意(即,选择加入)该合并。

假设您没有征得同意,我认为这也意味着您还应该从URL中删除任何查询或可识别信息。

再次,这可能就像在第一个或最后一个斜线(如果存在)处拆分字符串一样简单,这取决于网址的哪些部分对您很重要

将URL字符串转换为base64字符串并发送编码字符串

        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)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM