Django에서 특정 IP 주소만 사이트에 접근할 수 있도록 제어하려면 MIDDLEWARE에서 요청을 검사하고, 특정 IP 주소만 허용하거나 차단하는 방법을 사용할 수 있습니다. 이를 위해 사용자 정의 미들웨어를 작성할 수 있습니다.
1. 미들웨어 생성: 프로젝트의 앱 내에 미들웨어 파일을 생성합니다. 예를 들어, middleware.py 파일을 만듭니다.
2. 미들웨어 코드 작성: 특정 IP만 허용하는 로직을 미들웨어에 작성합니다. 예시 코드는 다음과 같습니다.
from django.http import HttpResponseForbidden
ALLOWED_IPS = ['127.0.0.1', '192.168.0.1'] # 허용할 IP 주소 목록
class IPRestrictionMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
ip = request.META.get('REMOTE_ADDR')
if ip not in ALLOWED_IPS:
return HttpResponseForbidden("Access Denied")
response = self.get_response(request)
return response
3. 미들웨어 등록: settings.py 파일에서 이 미들웨어를 등록합니다.
MIDDLEWARE = [
# 다른 미들웨어들
'your_app_name.middleware.IPRestrictionMiddleware', # 방금 작성한 미들웨어 경로
# 다른 미들웨어들
]
4. ALLOWED_IPS 설정: 필요한 IP들을 ALLOWED_IPS 목록에 추가합니다.
'Django' 카테고리의 다른 글
사용자 아이피로 접속허용여부 체크하기 (0) | 2024.10.16 |
---|---|
사용자 아이피, agent 가져오기 (0) | 2024.10.16 |
Django 보안 릴리스 발행소식 - 5.1.1, 5.0.9, 및 4.2.16 (1) | 2024.09.05 |
한글 로그문제 해결 - django (0) | 2024.07.31 |
문자열 이스케이프 함수 - django (0) | 2024.07.30 |