일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 이보드
- 피들러
- 웹
- network
- 고전게임
- ASP.NET
- HTML5
- Web Programming
- 네트워크
- 단열
- 우분투
- 윈도우 8
- 문자열
- D330-10igm
- D330
- 자바스크립트
- ubuntu
- retropie
- 인증 및 세션관리
- 안드로이드
- c#
- 셀프인테리어
- 인테리어
- fiddler
- WEB
- 진단항목
- 고전게임기 만들기
- 한컴오피스
- Lenovo D330-10igm
- 보안
- Today
- Total
Kinesis´s Open Document
패스워드(비밀번호) 변경 처리 루틴(알고리즘) 본문
패스워드 변경 처리 루틴(알고리즘)
::: in Javascript ( Ajax 를 사용한 경우 )
- 정규식을 통해 비밀번호가 정상적인지 확인한다.
- 바꿀 비밀번호 및 확인 비밀번호가 일치하는지 확인한다. 1
- 현재 비밀번호 입력 값 및 바꿀 비밀번호 와 확인 비밀번호를 서버측으로 POST 한다.
( 로그인 되어 있는 상태일 것이기 때문에 사용자 ID 값은 전송하지 않고 서버측에서 별도로 확인하도록 한다 ) 2
※ 각각의 조건에 대해 조건식이 부합하지 않는 경우 적절한 메세지를 출력하고 프로세스를 중단 및 종료한다.
::: In Server-Side ( with Database )
- Reqeust Referer 주소가 접근 허용된 곳에서 요청된 것인지 확인한다. 3
- 세션에 사용자 정보 값이 존재하는지 확인하고 사용자 정보를 얻어온다.
- 현재 사용자의 Identity 혹은 Sequence 를 바탕으로 현재의 패스워드가 일치하는지 확인한다.
- 바꿀 비밀번호 및 확인 비밀번호가 일치하는지 재확인한다. 6
- 현재 사용자의 Identity 혹은 Sequence 를 바탕으로 패스워드 값을 새로운 패스워드로 Update 처리 한다.
- 처리 결과에 따른 처리값을 반환한다. (Code 혹은 String 문자열) 7
※ 위와 마찬가지로 조건식이 부합되지 않는 경우 적절한 메세지나 코드명을 출력하고 프로세스를 중단 및 종료 한다.
::: Callback or Response
- 결과 메세지 출력 ( Code 에 따른 메세지 값 또는 넘겨받은 String 문자열 값 ) 8
- 2012년 10월 09일 정리 작성 - by Kinesis
- 본 게시물의 저작권은 Kinesis(Hae Kwang, Kim) 에게 있습니다.
초대장키 : 5e4571cb959aa3e2f9f06d322c0f1639 - 2012년 10월 11일 만료
- 서버측에 전달되기 이전에 클라이언트에서 자바스크립트를 통해 한번 처리하여 서버에 Post 되는 경우의 수를 줄여 서버 부하를 줄이기 위한 목적으로 사용하여 서버의 성능 퍼포먼스 유지의 이점을 노리기 위함이다. [본문으로]
- ID 값을 넘겨서 넘어온 ID를 가지고 서버측 연산을 처리할 경우, 클라이언트에서 조작을 통해 다른 사용자의 패스워드 변경을 노리게 되는 보안 문제점을 야기할 수 있기 때문이다. [본문으로]
- 웹 어플리케이션 및 외부 연계시스템에서 패스워드 변경 기능을 제공하는 경우 필요한 부분이며, 단순 어플리케이션에서는 생략할 수 있다. 넣는 이유로서는 보안위협의 문제를 줄이기 위함이다. [본문으로]
- 사용자 Identity 또는 Sequence 를 Post 시에 넘겨받지 않은 이유는 세션에 사용자 Identity 혹은 Sequence 가 존재할 것이라고 가정하였기 때문이다. 따라서 정상적으로 해당 값을 얻어오기 위해서는 세션이 살아있어야만 한다. (정확하게는 세션이 가진 사용자 정보 데이터를 가리킨다) [본문으로]
- 검증의 단계. 넘어온 값을 무조건 신뢰하는 경우 보안 문제가 야기된다. 특히 특수문자 등이 넘어오는 경우 SQL Injection 또는 서버측 스크립트 처리 연산 Injection 발생 등의 문제가 발생할 수 있으니 필요하다면 적절한 인/디코딩 과정이 필요할 수 있다. [본문으로]
- 검증 단계, 앞서와 마찬가지로 Injection 등의 문제가 발생할 수 있으며, 기본적으로 사용자에게서 넘어온 데이터 혹은 값은 무조건 신뢰되어서는 안된다. 따라서 다시 한번 검증을 시행한다. [본문으로]
- integer 형태의 code 로 리턴을 한 후 코드에 따른 메세지를 별도로 띄우거나 내지는 자체적으로 메세지를 만들어 되돌려주는 방법을 사용할 수도 있다. 이는 개발 프로젝트에 맞게 적절히 처리하도록 한다. [본문으로]
- 사용자가 결과를 할 수 있게끔 실질적으로 출력하는 결과 값 표시 부분이다. 표현하지 않는다면 사용자가 혼란해 할 수 있으므로 메시지 표기 처리를 구현해준다. [본문으로]
'MEMO/기술 자료 > Routine/Algorithm' 카테고리의 다른 글
회원 또는 사용자 (Member or User) 구현시 고려해야 할 요소 (0) | 2012.10.09 |
---|