Django로 실패한 로그인 시도 관리

3010 단어
무차별 대입 공격으로부터 웹 애플리케이션을 보호하고 사용자의 실패한 로그인 시도를 추적 및 관리하려면 django-axes를 사용하는 것이 좋습니다. 패키지 설치 및 설정 방법을 설명하겠습니다.


1 단계:

django-axes를 설치하려면 터미널을 열고 다음 명령을 입력하십시오.

pip install django-axes



2 단계:

다음으로 설치된 앱 아래에 '축'을 추가하려고 합니다. 여기서 위치는 상관없으니 원하는 위치에 삽입하시면 됩니다.

# settings.py

INSTALLED_APPS = [
    'axes', # Axes
]




3단계:

그런 다음 인증 백엔드에 'axes.backends.AxesBackend'를 추가해야 합니다. 다음과 같이 인증 백엔드 목록의 맨 위에 추가해야 합니다.

# settings.py

AUTHENTICATION_BACKENDS = [
   'axes.backends.AxesBackend', # Axes must be first
   'django.contrib.auth.backends.ModelBackend',
]



4단계:

다음으로 축에 대한 미들웨어를 추가해야 합니다. 이 미들웨어는 어디에나 삽입할 수 있습니다. 미들웨어는 'axes.middleware.AxesMiddleware'입니다.

# settings.py

MIDDLEWARE = [
    'axes.middleware.AxesMiddleware', # Axes 
]



5단계:

모든 것이 제대로 구성되었는지 확인하려면 아래 명령을 빠르게 실행하십시오.

python manage.py check



6단계:

이제 모든 것을 데이터베이스에 동기화하고 싶으므로 아래 명령을 입력하십시오.

python manage.py migrate


기본 설치 및 설정이 완료되었습니다!


7단계:

실패한 로그인 시도의 기본 횟수는 2 또는 3이어야 합니다. 이제 직접 시도하고 웹 사이트에서 이 이론을 테스트하십시오. 그러면 웹 페이지가 잠긴 것을 볼 수 있습니다.

모든 기록과 로그인 시도를 즉시 지우려면 터미널에 다음 명령을 입력하십시오.

python manage.py axes_reset



추가 정보:

settings.py 파일에 추가할 수 있는 몇 가지 django-axes 구성:


실패 한도 추가:

사용자가 애플리케이션에서 잠기기 전에 허용되는 로그인 시도 횟수를 수정할 수 있습니다. 정수가 사용되며 기본값은 3으로 설정됩니다. 6 또는 8로 설정하는 것이 좋습니다.

# settings.py

AXES_FAILURE_LIMIT: 6 



'휴지' 기간 설정:

나만의 '휴식 기간'을 설정하세요. 이는 웹 사이트에 다시 로그인을 시도하기 전에 기다려야 하는 시간을 나타냅니다. 정수는 시간으로 표시되며 설정된 기본값이 없습니다.

예시:
  • 다시 로그인하기 전에 2시간 동안 기다리십시오.

  • # settings.py
    
    AXES_COOLOFF_TIME: 2 
    



    실패한 시도 재설정:

    축 실패 제한이 3회 실패 시도로 설정되고 사용자가 2회 시도 실패 후 성공적으로 로그인하는 경우 실패한 시도를 0으로 재설정하려고 합니다. 이렇게 하려면 성공 속성의 재설정을 다음과 같이 간단히 설정할 수 있습니다. 진실:

    # settings.py
    
    AXES_RESET_ON_SUCCESS = True
    


    추가 안내가 필요하거나 django-axes에 대해 자세히 알아보려면 다음 문서를 읽어보세요.
    https://django-axes.readthedocs.io/en/latest/1_requirements.html


    마지막 메모…
    Django를 처음부터 배우는 데 관심이 있는 분들은 제 최신 과정을 확인해보세요.

    Python Django: Ultimate Beginners Course - 2022

    좋은 웹페이지 즐겨찾기