引用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'])
在上面的示例中,POST 参数的 pass_word 和 credit_card_number 的值将被隐藏并替换为错误报告中请求表示中的星号 ( ****** ),而 name 参数的值将被公开。
要在错误报告中系统地隐藏请求的所有 POST 参数,请不要向sensitive_post_parameters 装饰器提供任何参数:
@sensitive_post_parameters()
def my_view(request):
...
作为测试,我将以下代码添加到我的 Django 1.6 应用程序中:
视图.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()})
表格.py:
class SensitiveParamForm(forms.Form):
not_sensitive = forms.CharField(max_length=255)
sensitive = forms.CharField(max_length=255)
当我通过 提交此表单时,我可以在 Sentry 报告POST
中看到两个字段(包括 )的值都清楚地显示为 day。sensitive
我在这里做错了什么?我正在使用 Django 1.6 和 Raven 3.5.2。
在此先感谢您的帮助!