반응형
로그인 인증 절차
로그인의 인증절차를 제대로 구현하지 않을 경우 다른 사람이 기능을 이용할 때 정보 탈취가 일어날 수 있다.
로그인을 하더라도 모든 페이지에서 동일한 권한의 서비스를 제공하는 것 대신 데이터를 열람할 때 다른 인증방식으로 다시 인증하는 방법을 적용해 강화하면 데이터 누출에 대한 보안 문제를 일부 해소할 수 있다.
파이썬 비밀번호(암호) 변경 기능 구현 중요사항
1. 외부 접근 시 보안검사를 우회하여 서버에 접근하지 못하게 설계
2. 중요한 정보가 있는 페이지는 재 인증 적용
3. 안전하다고 검증된 라이브러리나 프레임 워크를 사용
안전한 비밀번호 변경 구현 코드 예시
# login 된 사용자만 접근하도록 처리
@login_required
def change_password(request):
new_pwd = request.POST.get('new_password','')
crnt_pwd = request.POST.get('current_password','')
# 세션에서 로그인한 사용자정보를 가져옴
user = '%s' % escape(request.session['userid'])
crnt_h = hashlib.sha256(crnt_pwd.encode())
h_pwd = crnt_h.hexdigest()
# DB에서 기존 사용자의 Hash값 변환 된 패스워드 가져오기
old_pwd = get_password_from_db(user)
# 패스워드를 변경하기 전 사용자에 대해 재인증
if old_pwd == h_pwd:
new_h = hashlib.sha256(new_pwd.encode())
update_password_from_db(user, new_h.hexdigest())
returnrender(request, '/success.html')
코드 설명
1. 변경할 암호와 현재 암호를 변수에 저장
2. 로그인 한 사용자 정보 가져옴
3. 현재 암호를 암호화하고, DB에 저장된 암호화된 알고리즘과 비교
4. 일치할 경우 변경할 암호를 수정함(업데이트)
반응형
'IT > 앱사용방법' 카테고리의 다른 글
티스토리 구글 애드센스 본인 확인 하는 방법 (0) | 2022.06.29 |
---|---|
시큐어코딩) 파이썬 중요 자원에 대한 권한 설정 (0) | 2022.06.27 |
시큐어코딩) 파이썬 포맷 스트링 삽입 공격 예방(예시 코드 포함) (0) | 2022.06.17 |
시큐어코딩) 파이썬 CSRF(크로스 사이트 요청 위조) 공격 예방코드 예시 (0) | 2022.06.15 |
시큐어코딩) 파이썬 피싱공격 예방(기초 코드 예시포함) (0) | 2022.06.14 |