Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- 정렬
- flask
- nodejs
- JavaScript
- cookie
- Queue
- Nest.js
- Express
- Sequelize
- Bull
- MySQL
- typeORM
- class
- GIT
- game
- jest
- dfs
- nestjs
- OCR
- Dinosaur
- mongoose
- AWS
- 자료구조
- 공룡게임
- Python
- MongoDB
- TypeScript
- react
- 게임
Archives
- Today
- Total
포시코딩
[Login] Cookie를 다루는데 있어서 - 작성중 본문
728x90
HttpOnly
쿠키는 '세션 하이재킹', 'XSS 공격' 등으로 탈취될 수 있다.
대응 방법으로는 HttpOnly 설정을 추가해 HTTP Only Cookie를 활성화 시키면
XSS와 같은 공격을 차단할 수 있게 된다.
이렇게 되면 브라우저에서 해당 쿠키로 접근할 수 없게 되지만,
애초에 쿠키에 포함된 정보의 대부분이 브라우저에서 접근할 필요가 없기 때문에
기본적으로 적용하는 것을 권장한다.
하지만 HttpOnly 속성은 클라이언트(브라우저 등) 에서 설정할 수 없는 옵션이며
서버단에서만 설정할 수 있는 옵션이라는데
만약 프론트엔드 서버와 백엔드 서버가 분리되어 있다면 사용하기 힘든 상황이 발생할텐데 어떻게 해야할까?
HTTP Only Cookie를 사용하면 Clinet에서 JS를 통한 쿠키 탈취 문제를 예방할 수 있지만
JavaScript가 아닌 네트워크를 직접 감청하여 쿠키를 가로챌 수도 있다.
이 경우 SSL 암호화가 적용된 HTTPS 프로토콜을 통해 데이터를 암호화 하여 서버에 넘겨주면
쿠키를 탈취당하더라도 암호화가 되어 있어 정보를 알아낼 수 없다.
HTTPS 프로토콜
HTTPS 통신일 경우 HttpOnly 대신 secure 접미사를 사용해 쿠키를 저장할 수 있는데
서버, 클라이언트 모두에서 옵션을 적용할 수 있다.
예시)
document.cookie = "key=value; path:/; secure"
참고한 곳
728x90
'Node.js' 카테고리의 다른 글
| Controller와 Service의 역할 분리에 대해 (0) | 2023.01.22 |
|---|---|
| [코드이슈] authMiddleware의 보안 이슈 - 작성중 (0) | 2023.01.15 |
| [Sequelize] 트랜잭션(Transaction) (0) | 2023.01.15 |
| HTTP Status Code 상태 코드 (0) | 2023.01.13 |
| [multer] 업로드 기능 class로 모듈화 시키기 (0) | 2023.01.04 |