과제 1. 문서화
cookie:브라우저에 저장하는 데이터, String 형태, Key와 Value로 구성
HTTP에서 상태를 기억하기 위함
ex) "아이디와 비밀번호를 저장하시겠습니까?", "오늘 이 창을 다시 보지 않기 - 체크"
cookie 사용 목적
1. 세션 관리
2. 개인 설정 유지
3. 사용자 트래킹: 행동패턴 분석
cookie 구성 요소&동작 방식
이름, 값, 유효시간, 도메인, 경로
1. 사용자가 서버로 요청
2. 서버에서 쿠키 들고 응답
3. 쿠키 들고 서버로 요청
4. 쿠키 상태에 맞게 응답
cookie 설정
1. 서버
HTTP 응답 중 Set-Cookie 추가-> 클라이언트의 브라우저가 Set-cookie
name=test;
2. 클라이언트
자바스크립트로 쿠키 설정
document.cookie="name=test;"
session: 일정 시간 동안 사용자의 요구를 하나의 상태로 인식 -> 유지시키는 기술
쿠키의 보안 취약점을 보완하기 위함
쿠키에 인증 상태 저장 but 클라이언트가 변조 X
1. 클라이언트가 서버에 로그인 요청
2. 아이디, 비번 일치하면 세션 생성 -> 서버 메모리에 저장
3. 서버에서 세션 아이디를 쿠키에 담아 전달
4. 쿠키에 세션아이디 넣어서 다시 서버로 전달
5. 세션아이디로 세션 식별
6. 유효하면 서버가 클라이언트에 응답
쿠키와 세션
| cookie | session | |
| 저장 위치 | 클라이언트 | 서버 |
| 저장 형식 | text | object |
| 용량 제한 | 도메인 당 20개 1쿠키 당 4KB |
없음 |
| 만료 시점 | 쿠키 저장 시 설정 | 알 수 없음 |
| 속도 | 상대적 빠름 | 상대적 느림 |
XSS
Cross Side Scripting: 클라이언트 쪽 취약점, 악성 스크립트 삽입하여 브라우저에서 실행하는 공격
1. 공격자가 서버로 악성스크립트 포함한 게시물 전송, 악성스크립트가 포함된 URL 사용자에게 전송
2. 사용자가 서버로 요청
3. 서버가 응답
4. 사용자 PC에서 악성스크립트 실행
Stored XSS
1. 악성스크립트 포함된 게시물 서버로 전송
2. 악성스크립트가 포함된 게시물(데베에 저장된) 요청
3. 응답
4. 사용자 PC에서 악성스크립트 실행
Reflected XSS
1. 사용자에게 악성스크립트 포함된 URL 전송
2. 사용자가 클릭하여 요청
3. 응답
4. 사용자 PC에서 악성 스크립트 실행
DOM based XSS
문서 객체 모델->브라우저 자체에서 악성 스크립트 실행(서버 상호작용 필요없음)
* DOM: 문서 객체 모델, HTML 문서 읽고 DOM 형태로 재구성해 사용자에게 제공할 때 쓰임
XSS 대응 방안
1. 입력값 제한 : 스크립트 삽입하지 못하게 막기
2. 입력값 치환: ASCII 문자-> HTML 문자로 치환
3. 스크립트 영역에 출력 자제: 핸들러 영역에 스크립트 삽입중에 보호기법 우회를 방지하기 위함
'SWING > web hacking' 카테고리의 다른 글
| SWING WEB 4주차(1) (0) | 2023.11.12 |
|---|---|
| SWING WEB 4주차(2) (0) | 2023.11.12 |
| SWING WEB 3주차(2) (0) | 2023.09.26 |
| SWING WEB 3주차(1) (0) | 2023.09.25 |
| SWING WEB 2주차(2) (0) | 2023.09.19 |
