IT/앱사용방법

시큐어코딩) 파이썬 피싱공격 예방(기초 코드 예시포함)

볼통통알파카 2022. 6. 14. 22:32
반응형
피싱 공격이란?

일반적으로 사용자에서 전달한 URL 주소로 연결하기 때문에 안전하다 생각할 수 있지만 해당 폼의 요청을 변조하여 피싱사이트로 접속하게 만든다.

 

피싱공격 방법

1. 공격자가 웹서버에 URL 주소 변조 값을 전달한다.

2. 변조된 URL 반환 값(피싱사이트)로 연결된다.

3. 일반 사용자가 웹서버에 올라간 URL을 클릭할 때 피싱사이트로 연결된다.

 

피싱 공격 시큐어 코딩 예시 : 화이트리스트 만들어 관리
ALLOW_URL_LIST = [    
 '127.0.0.1',
 '192.168.0.1',
 'https://login.service.com',
 ......
 '/notice'
]
def redirect_url(request):
 url_string = request.POST.get('url', '')     
 
 # URL 이동할 수 있는 범위를 제한하여 위험한 사이트의 접근을 차단
 if url_string not in ALLOW_URL_LIST:     
    return render(request, '/error.html', {'ERROR':'허용되지 않는 주소입니다.})     
 
 return redirect(url_string)
코드설명

화이트리스트로 redirect 하기 전 검증 후 접근할 수 있게 한다.

사용자 또는 관리자가 게시물을 업로드하기 전 URL 검증하는 방법과 화이트리스트로 관리하는 방법 등 여러 기법이 있다.

 

정리

배너나 연결 링크를 사용할 때 화이트 리스트 방식으로 redirect 사이트를 제한 하는 방식으로 피싱공격을 최소화 할 수 있다.

 

반응형