小编Ste*_* D.的帖子

如何从Sentry错误报告中过滤掉敏感的Django POST参数?

引用Django文档

@sensitive_post_parameters('pass_word', 'credit_card_number')
def record_user_profile(request):
    UserProfile.create(user=request.user,
                       password=request.POST['pass_word'],
                       credit_card=request.POST['credit_card_number'],
                       name=request.POST['name'])
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,pass_word和credit_card_number POST参数的值将被隐藏,并在错误报告内的请求表示中用星号(******)替换,而name参数的值将被公开。

要在错误报告中系统地隐藏请求的所有POST参数,请不要向sensitive_post_parameters装饰器提供任何参数:

@sensitive_post_parameters()
def my_view(request):
    ...
Run Code Online (Sandbox Code Playgroud)

作为测试,我将以下代码添加到了Django 1.6应用程序中:

views.py:

@sensitive_post_parameters('sensitive')
def sensitive(request):
    if request.method == 'POST':
        raise IntegrityError(unicode(timezone.now()))
    return render(request, 'sensitive-test.html',
          {'form': forms.SensitiveParamForm()})
Run Code Online (Sandbox Code Playgroud)

forms.py:

class SensitiveParamForm(forms.Form):
    not_sensitive = forms.CharField(max_length=255)
    sensitive = forms.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)

当我通过提交此表单时POST,我可以sensitive在Sentry报告中看到两个字段(包括)的值清除为当天。

我在这里做错了什么?我正在使用Django 1.6和Raven 3.5.2。

在此先感谢您的帮助!

django error-reporting heroku sensitive-data sentry

4
推荐指数
1
解决办法
1614
查看次数

标签 统计

django ×1

error-reporting ×1

heroku ×1

sensitive-data ×1

sentry ×1