如何避免在 Django 管理页面中看到敏感的用户数据?
How to avoid seeing sensitive user data in django admin page?
我做了一个 django 网络应用程序,用户可以在其中输入一些数据。我已经创建了一个超级用户,作为应用程序的管理员,我可以看到用户输入的数据,这些数据可以用于名称而不是敏感数据,但我不想看到他们的敏感数据,例如健康数据。
我使用了 django_cryptography.fields
中的 encrypt
模块如下:
health_data = encrypt(models.IntegerField(default=140))
我发现如果我从外部脚本或简单的 DBbrowser 查看数据库,它工作正常,因为我看不到敏感数据。但我知道这在 django 管理中是无缝的:在 django 管理页面中它在呈现之前解密。
所以我同意加密数据,这是额外的安全性,但这不是我的首要目标。我想要超级用户,但我希望我 不能 能够看到他们的敏感数据。你有什么想法 ?感谢您花时间阅读。
按照建议我更改了我的管理代码:
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",...,)
通过这种方式,我在管理页面中自定义了呈现的字段。我再也看不到管理页面中用户的敏感数据,这是我想要的行为。
我做了一个 django 网络应用程序,用户可以在其中输入一些数据。我已经创建了一个超级用户,作为应用程序的管理员,我可以看到用户输入的数据,这些数据可以用于名称而不是敏感数据,但我不想看到他们的敏感数据,例如健康数据。
我使用了 django_cryptography.fields
中的 encrypt
模块如下:
health_data = encrypt(models.IntegerField(default=140))
我发现如果我从外部脚本或简单的 DBbrowser 查看数据库,它工作正常,因为我看不到敏感数据。但我知道这在 django 管理中是无缝的:在 django 管理页面中它在呈现之前解密。
所以我同意加密数据,这是额外的安全性,但这不是我的首要目标。我想要超级用户,但我希望我 不能 能够看到他们的敏感数据。你有什么想法 ?感谢您花时间阅读。
按照建议
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",...,)
通过这种方式,我在管理页面中自定义了呈现的字段。我再也看不到管理页面中用户的敏感数据,这是我想要的行为。