[英]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_NAMEhttps://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC]
REDACTED_URL_BASIChttps://[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.