敏感数据
与任何第三方服务一样,了解发送到Sentry的数据非常重要,并且在相关情况下确保敏感数据永远不会到达Sentry服务器,或者至少不会被存储。我们建议在SDK中过滤或清理敏感数据,以使数据不会随事件一起发送,还建议配置服务器端清理以确保不会存储数据。
每个公司都应该考虑两个很好的数据清理示例:
-
个人识别信息,如用户名或电子邮件地址,每个公司都应该记住这些信息
-
身份验证凭据,如令牌和密码
默认PII
我们的新sdk并没有故意让PII站在安全的一边。此行为由名为send default pii的选项控制。
打开此选项对于Sentry中的某些功能来说是必需的,但也意味着您将需要更加小心将哪些数据发送到Sentry(使用下面的选项)。
SDK中的自定义事件处理
在sdk中,可以配置before send函数,该函数在发送事件之前调用,可用于修改事件数据和删除敏感信息。建议在发送数据之前使用sdk中的before send来清除任何数据,因为SD从不离开本地环境。
Sentry.init({
dsn: 'https://<key>@<organization>.ingest.sentry.io/<project>',
beforeSend(event) {
// Modify the event here
if (event.user) {
// Don't send user's email address
delete event.user.email;
}
return event;
}
});
-
注意事件信息中的SD(堆栈跟踪、breadcrumbs和SDK正在获取的其他值,如headers/etc)一些需要注意的事项:
-
堆栈局部变量→一些sdk(Python+PHP)将获取变量值。如有必要,可以将其全部清除或禁用
-
Breadcrumbs→一些sdk(例如JavaScript、Java日志集成)将获取以前执行的日志语句。如果使用此功能并将日志语句作为事件中的breadcrumb,则不要记录PII。一些后端sdk将处理可能需要清理的DB查询
-
-
注意附加到事件和代码的内容,仔细检查SDK更改,包括上下文
- 上下文→标记(包括用户上下文)+额外信息+面包屑