사용자 IP가 동일한 IP가 아닌 경우 사용자 세션을 허용하지 않도록 auth를 구성하거나 수정할 수있는 방법 그가 같이 로그인 했어? XSS에서 장고 사이트를 최대한 보호하려고합니다. 그러나 나는 모든 기반을 다 커버했다는 것을 확신 할 수 없다. 최악의 경우 최악의 경우 누군가 내 사이트에 XSS를 설치할 수 있습니다. 적어도 이로 인해 기존 사용자 세션을 하이재킹 할 수 없게됩니다.Django auth : 사용자의 IP가 원래 IP (로그인 한 사용자)와 일치하지 않는 경우 사용자 세션을 허용하지 않는 방법
0
A
답변
0
사용자 모델 클래스에서 IP 주소를 저장합니다. 의뢰.
original_ip_address = request.META['REMOTE_ADDR']
단순히 저장된 IP를 현재 요청 확인 뷰를 봉사하기 전에 :
이if request.META['REMOTE_ADDR'] == ip_from_database: `
# Do something
else:
#redirect to login
당신이 항상보기에 아무것도하기 전에 호출되는 함수 위에 만들 수 있습니다.
+0
성공적인 로그인 시도가있을 때마다 ip를 업데이트하거나 로그 아웃 후에 삭제해야합니다. 그렇지 않으면 다시 돌아올 수 없습니다. – Ali
2
프록시 또는로드 균형 조정기의 실제 IP 주소가 아닌 방문자의 실제 IP 주소를 가져 오려면 다음을 사용하십시오. (서버가 하나 인 경우)
# on login:
request.session['logged_ip'] = request.META.get('HTTP_X_FORWARDED_FOR',
request.META.get('HTTP_X_REAL_IP',
request.META.get('REMOTE_ADDR', '1.2.3.4')))
# on each request
if (request.META.get('HTTP_X_FORWARDED_FOR',
request.META.get('HTTP_X_REAL_IP',
request.META.get('REMOTE_ADDR', '1.2.3.4'))) != request.session['logged_ip'])
# don't allow
이것이 XSS를 방지하는 방법을 알 수는 없지만 사용자가 동적 IP 또는 랩톱에서 사이트를 사용하지 못하게하는 방법을 알 수 있습니다. –