NodeJS/생활코딩
[NodeJS] Secure 와 HttpOnly
kyeongjun-dev
2020. 9. 25. 17:18
예제코드
var http = require('http');
var cookie = require('cookie');
var app = http.createServer(function (request, response) {
if (request.headers.cookie != undefined) {
console.log(cookie.parse(request.headers.cookie));
}
response.writeHead(200, {
'Set-Cookie': ['yummy_cookie=choco',
'tasty_cooke=strawberry',
`Permanent1=cookies; Expires=Wed, 21 Oct 2021 07:28:00`,
`Permanent2=cookies; Max-Age=${60*60*24}`,
`Secure-cookie=Secure-description; Secure`,
`HttpOnly=HttpOnly; HttpOnly`]
});
response.end('hello world');
});
app.listen(80);
session쿠키 두개, Permanent 쿠키 두개 다음에 쿠키 두개를 추가한 코드이다. 하나는 쌍따옴표뒤에 Secure라는 옵션이 있고, 마지막 하나는 HttpOnly라는 옵션이 있다.
Secure
Secure옵션을 주게되면, 웹브라우저가 request를 할 때, https인 상태에서만 요청을 보내도록 한다.
웹서버에서 Response로 보내준 Secure-cookie가 있지만, Request Cookies에는 해당 쿠키가 보이지 않는다.
HttpOnly
크롬 브라우저 콘솔창에서 document.cookie를 입력하면, 쿠키들의 목록이 나오는데 HttpOnly쿠키는 표시되지 않는다. 이는 데이터를 http 통신을 할 때만 쿠키를 가져올 수 있도록 하는 옵션이다. 자바스크립트로 쿠키를 가져올 수 없게 한다.