수업

12/22

진태현 2023. 12. 22. 11:20

direct traversal

- 서버로 전달 값을 바꿈 

 

리다이렉션

- 서버와 브라우저 상호작용할 때 브라우저는 자동으로 파일을 불러옴

> 주소 검색 시에 /가 붙음 

 

기본인증

- HTTP 프로토콜 인증방식

클라이언트와 서버 : 디렉토리 요청 > 인증정보가 없음 인지 > 사용자에게 인증정보 요구 > 서버는 검증 > 처리 후 http

상태코드 알려줌 

- 기본인증은 안전한 방법이 아님 : base64 인코딩 방식을 사용해서 안전하지 않음

- 요청할 때마다 인증정보를 매번 가져가야됨. (노출 위험)

> form 기반으로 바꿔야함 

 

Stateless

- cookie: Stateless http 프로토콜 상태를 유지하기 위해 도입

단, 요청 헤더와 응답헤더를 통해 전달 > 전달 과정에서 탈취 가능성 

브라우저에 저장되고 JavaScript를 이용해서 접근이 가능

- 개발자도구 > console > document.cookie 

> 쿠키에 중요 정보 저장X, 사용 X 

 

Session

- 쿠키의 단점 보완

- 중요 정보는 서버에 저장, 접근자에게 서버접근 ID부여

> 세션 ID관리 중요, ID 생성 및 관리 중요

세션ID고정

- 인증 전과 인증 후에 동일한 세션 ID를 사용 : 공격자가 권한 탈취 후 사이트 이용 가능 

추측

-  Session ID 일정한 규칙

 

안전한 쿠키 운영 방법

  • 중요 정보는 쿠키에 포함X
  • 중요 쿠키는 정보 암호화해서 포함
  • 쿠키 생성 시에 Secure 속성 활성화해서 보안 통신일 때만 전달
  • 쿠키 생성 시에 HttpOnly 속성 활성화 해서 쿠키 직접 접근하지 못하게 
  • 쿠키 유효기간, 지속시간을 최소한으로 설정

서버는 세션 ID를 이용해서 사용자를 식별

세션 ID가 탈취 당하게 되면, 서버를 속여서 접근 가능 

*** 쿠키 값만 같아도 ID/PW가 없어도 로그인버튼만 누르면 로그인이 가능하다.

 

세션ID 운영 방법

  • 인증 전 후에 세션 ID를 다르게 유지
  • 세션 ID 생성 규칙을 외부에서 알 수 없도록 > 로그인 후 세션 ID 새로 발급, 로그아웃 시 세션 ID 삭제 
  • 주기적으로 세션 ID 갱신 
  • 세션 ID가 담긴 쿠키를 안전한 방법으로 생성하고 관리

인증 방법

타입1 : 지식기반 - 사용자만 알고 있는 정보를 이용해서 인증 > 패스워드

타입2 : 소유기반 - 사용자만 가지고 있는 정보를 이용 > 스마트폰, OTP 

타입3 : 특징기반 - 사용자만 가지고 있는 특징 > 필기체, 지문

 

접근 통제

- 기능 레벨에서의 누락 > 서버에서 접근통제를 해줘야함 

ex) 서버에서의 접근 통제가 이루어지지 않음

>> 요청한 사용자의 권한 여부를 체크하는 로직 추가


 

모듈 프로젝트 : 애플리케이션 만들 시에 취약점 찾아서 방지하거나 만들 때 주의 해서 만들기 

- 세션, 블랙리스트, 화이트리스트, 문자열 등 고려해서 만들어야 됨

'수업' 카테고리의 다른 글

1/3  (0) 2024.01.03
1/2 : 프로젝트  (0) 2024.01.02
12/21  (0) 2023.12.21
12/20  (0) 2023.12.20
12/19  (0) 2023.12.19