<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 debug page XSS漏洞(CVE-2017-12794)
Django debug page XSS漏洞(CVE-2017-12794)