如何避免在Django管理页面中看到敏感用户数据?

2024-06-16 10:06:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个django web应用程序,用户可以在其中输入一些数据。我已经创建了一个超级用户,作为该应用程序的管理员,我可以看到用户输入的数据,这对于名称和非敏感数据来说很好,但我不想看到他们的敏感数据,如健康数据

我使用了来自django_cryptography.fieldsencrypt模块,如下所示:

health_data = encrypt(models.IntegerField(default=140))

我发现如果我从外部脚本或简单的DBbrowser查看数据库,它工作得很好,因为我看不到敏感数据。但我知道这在django管理中是无缝的:在django管理页面中,它在呈现之前进行解密

所以我同意加密数据,这是额外的安全,但这不是我的第一个目标。我想拥有超级用户,但我希望我不能看到他们的敏感数据。你有什么想法吗?谢谢你花时间读书


Tags: 模块数据django用户名称web应用程序fields
1条回答
网友
1楼 · 发布于 2024-06-16 10:06:23

根据建议here我更改了我的管理代码:

from django.contrib import admin
from .models import MyModel

# Register your models here.
admin.site.register(MyModel)

为此:

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    # avoid admin can see the sensitive data in admin page
    fields = ("non_sensitive_field1", "non_sensitive_field2",...,)

通过这种方式,我可以自定义管理页面中呈现的字段。我在管理员页面上看不到来自用户的敏感数据,这是我想要的行为

相关问题 更多 >