<script> 的 Django REST 框架密码安全性

Posted

技术标签:

【中文标题】<script> 的 Django REST 框架密码安全性【英文标题】:Django rest framework password security for <script> 【发布时间】:2019-07-26 02:02:08 【问题描述】:

我已经在 Django Rest Framework 中实现了用户注册,但我不知道如何检查 sql 注入等。 例如这样的密码:“”

class UserRegisterSerializer(serializers.ModelSerializer):

def validate(self, data):
    password = data['password']
    password2 = data['password2']
    data.pop('password2')

    if password != password2:
        raise serializers.ValidationError("password": "Passwords must match.")

    errors = dict()
    try:
        # validate the password and catch the exception
        validators.validate_password(password)

    # the exception raised here is different than serializers.ValidationError
    except exceptions.ValidationError as e:
        errors['password'] = list(e.messages)

    if errors:
        raise serializers.ValidationError(errors)

    return data

此代码在我的设置中:

AUTH_PASSWORD_VALIDATORS = [

    'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
,

    'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', #=> Default (8 characters)
    'OPTIONS': 
        'min_length': 4,
    
,

    'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
,

    'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
,

【问题讨论】:

见***.com/q/3324798/1531971***.com/q/38523159/1531971***.com/q/17113712/1531971***.com/q/20468143/1531971***.com/q/46420168/1531971等 【参考方案1】:

来自 Django 官方安全文档。 Security in Django

Django 的查询集受到 SQL 注入保护,因为它们的查询是使用查询参数化构造的。查询的 SQL 代码与查询的参数分开定义。由于参数可能是用户提供的,因此不安全,因此它们会被底层数据库驱动程序转义。

【讨论】:

以上是关于<script> 的 Django REST 框架密码安全性的主要内容,如果未能解决你的问题,请参考以下文章

iview-admin 1.3 + django 2.0 用户登录

django的csrf

Django debug page XSS漏洞(CVE-2017-12794)

Django debug page XSS漏洞(CVE-2017-12794)

如何在 django 模板标签中传递 Javascript 变量

使用 django 和 python 的动态网页