Django中的设计用户是否存在风险?

时间:2017-11-07 07:38:47

标签: python django

我正在创建扩展用户,如下所示:

class User(AbstractUser):
    username = models.CharField(max_length=16)
    password = models.CharField(max_length=40)  # sha1加密
    real_name = models.CharField(max_length=12, null=True, blank=True)
    phone = models.CharField(max_length=11)  # 手机号码
    email = models.EmailField(blank=True, null=True)
    qq = models.CharField(max_length=10, null=True, blank=True)
    address = models.CharField(max_length=64, blank=True, null=True)  # 地址

    nickname = models.CharField(max_length=16, blank=True, null=True)


    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)

你看到这里有两个字段:

is_staff = False
is_superuser = False

那么,当我创建AdminUser时,是否存在风险? 因为黑客可能会使用:

AdminUser(xxxxx, is_staff=True, is_superuser=True, xxx) 

创建超级用户。或者我的用户模型是否完全错误?

修改

AbstractUserdjango.contrib.auth.models.AbstractUser

1 个答案:

答案 0 :(得分:0)

您不必从头开始创建用户模型。 You can extend django's User model to add the additional fields you want.这是推荐的方式。

而且,创建超级用户(读作admin-user)的推荐方法是using django-admin