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 |
Tags
- HTML
- Spring
- phaser
- jQuery
- CSS
- 배포
- 도커
- 비트코인
- express
- 웹게임
- 암호화
- tiles.xml
- PL/SQL
- 알고리즘
- RDS
- Ajax
- AWS
- model1
- Cookie
- websocket
- 웹소켓
- 블록체인
- node.js
- JavaScript
- Servlet
- autowired
- EC2
- SQL
- JSP
- docker
Archives
- Today
- Total
記錄
생활코딩_Node.js) cookie 암호화 본문
cookie에 저장하는 정보가 민감하고 private 한 정보라면 암호화할 필요성이 있다.
개발자 도구에서 cookie를 눌러보면 정보가 다 보이기 때문이다.
물론, jsp를 배울때도 마찬가지고 node.js를 배울 때도 마찬가지고 사실 민감한 정보 자체를 cookie에 저장할 일은 없는데
항상 괜히 session을 배우기 전에 cookie를 배우면서 이런 개념을 알려준다(어느 인강이나 비슷한 것 같다)
아무튼 암호화 자체도 스프링보다 훨씬 가볍고 쉬웠다
암호화 전
암호화 후
cookie의 값을 보안상의 이유로 암호화 할 수 있는데 방법은 다음과 같다.
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
// cookieParser의 파라미터로 암호화에 사용할 Key값을 임의로 입력
app.use(cookieParser('12354dssa#@!%#!'));
app.get('/count',function(req, res){
let count;
// req.cookies.count => req.signedCookies.count 로 변경
if(req.signedCookies.count){
// cookie 에서 가져오는 값은 모두 String type이 디폴트
count = parseInt(req.signedCookies.count);
} else{
count = 0;
}
count += 1;
// cookie 생성시에도 세 번째 파라미터로 {signed:true}를 넣어주어 암호화 한다
res.cookie('count', count, {signed:true});
res.send('count : ' + count);
});
app.listen(3000, function(){
console.log('Connected!');
});
1. 미들웨어 장착시 파라미터에 암호화에 사용할 key 값을 넣는다
// cookieParser의 파라미터로 암호화에 사용할 Key값을 임의로 입력
app.use(cookieParser('12354dssa#@!%#!'));
2. cookie를 read시에 req.signedCookies.keyname으로 꺼내온다
// req.cookies.count => req.signedCookies.count 로 변경
if(req.signedCookies.count){
// cookie 에서 가져오는 값은 모두 String type이 디폴트
count = parseInt(req.signedCookies.count);
} else{
count = 0;
}
3. cookie를 생성 할 때에 세 번째 파라미터로 {signed: true} 를 넣어준다
// cookie 생성시에도 세 번째 파라미터로 {signed:true}를 넣어주어 암호화 한다
res.cookie('count', count, {signed:true});
'Web > Node.js' 카테고리의 다른 글
생활코딩_Node.js) 암호화(md5 + salt // sha256) (0) | 2018.08.05 |
---|---|
생활코딩_Node.js) session (0) | 2018.08.05 |
생활코딩_Node.js) cookie 생성, 수정 (0) | 2018.08.01 |
생활코딩_Node.js) 파일업로드 (0) | 2018.08.01 |
생활코딩_Node.js) Watch 기능 (0) | 2018.08.01 |
Comments