Django rest framework пароль безопасности для <script> - PullRequest
0 голосов
/ 04 марта 2019

Я реализовал регистрацию пользователей в 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',
},

1 Ответ

0 голосов
/ 04 марта 2019

Из официальных документов безопасности Django. Безопасность в Django

Наборы запросов Django защищены от внедрения SQL, поскольку их запросы строятся с использованием параметризации запроса.Код SQL запроса определяется отдельно от параметров запроса.Поскольку параметры могут быть предоставлены пользователем и поэтому небезопасны, они экранируются базовым драйвером базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...