다음 중 세션에 대한 설명으로 옳은 것을 모두 고르면?
A 서버와 클라이언트의 연결이 활성화된 상태 자체를 의미한다.
B 클라이언트의 브라우저에 세션 객체가 저장되어 관리된다.
C 클라이언트에 개별적으로 발급되는 세션 id는 헤더의 'set-session' 속성에 담겨야 한다.
D 세션이 활성화가 되면, 서버는 클라이언트를 구분하기 위해 각 클라이언트에 세션 id를 발급한다.
E 쿠키와 완전히 별개의 개념으로, 쿠키의 단점을 보완하기 위해 등장한 기술이다.
답
A 서버와 클라이언트의 연결이 활성화된 상태 자체를 의미한다.
D 세션이 활성화가 되면, 서버는 클라이언트를 구분하기 위해 각 클라이언트에 세션 id를 발급한다.
오답풀이)
B 세션 정보가 클라이언트, 서버 둘 다 저장이 된다.
세션 객체(인증정보)는 서버에 저장
C set-session이 아니라 set-cookie
set-cookie는 응답에 담긴다.
응답에 한번 담기고 나면 req.header.cookie에 자동으로 담김
E 별개가 아니라 쿠키의 한계를 보완하기 위한 것
유저가 어떤 팝업 창에 대해 '7일간 다시 보지 않기'를 선택할 경우, 해당 설정은 무엇을 통해 저장하는 것이 가장 바람직할까요?
답
쿠키
express-session을 통해 세션 객체에 'username'이라는 데이터를 저장하려 합니다. 다음 중 올바른 방법은 무엇일까요?
A req.session.id.username = 'myusername'
B req.session.username = 'myusername'
C req.session.cookie.username = 'myusername'
D req.cookie.username = 'myusername'
답
B req.session.username = 'myusername'
암호화에서 솔트(salt)란 무엇일까요?
암호화해야 하는 값에 어떤 별도의 값을 추가하여 결과를 변형하는 것
해시하는 값
MYSALTmypassword -> sha256 HASH -> de234ae
서버가 데이터 베이스에 저장한 암호는 de234ae
사용자가 로그인 시도시 서버가 하는 일
MYSALT + 사용자 입력 -> sha256 HASH -> 결과와 DB에 쌓인 것 비교
다음 HTTP 통신의 특성 가운데, cookie 및 session을 사용하는 이유와 가장 밀접한 연관이 있는 것은 무엇일까요?
A connectionless
B stateless
C media independent
D All of the above
답
B stateless
다음 중 토큰에 대한 설명으로 옳은 것은?
A 서버에서만 토큰을 저장하고 관리한다.
B 인증을 위해 사용되는 암호화된 문자열이다.
C 서버는 유저의 요청에 담긴 토큰이 유효한지, 유저가 현재 브라우저에 접속 중인지 여부 등을 확인한다.
D 세션 및 쿠키와 마찬가지로, 유저가 보내는 모든 요청에 포함된다.
답
B 인증을 위해 사용되는 암호화된 문자열이다.
D 세션 및 쿠키와 마찬가지로, 유저가 보내는 모든 요청에 포함된다.
node.js crypto 모듈의 createHmac 메서드를 사용하여 'topSecret!'이라는 문자열을 암호화하고자 합니다. 다음 코드에서 잘못된 부분은 어디이고, 틀린 이유는 무엇일까요?
const crypto = require('crypto');
const yourSecretKey = 'thisIsMySecretKey'
const hash = crypto.createHmac('topSecret!', yourSecretKey)
.update('topSecret!')
.digest('base64');
A .createHmac('topSecret!', yourSecretKey)
createHmac() 메서드는 인자로서 알고리즘만을 받는다.
B .createHmac('topSecret!', yourSecretKey)
crypto.createHmac()은 알고리즘과 키를 인자로 받아야 한다.
C .update('topSecret!')
createHmac()에서 데이터와 키를 인자로 넣은 경우, update메서드는 생략해야 한다.
D .digest('base64')
답
A
인코딩이 아니라 알고리즘을 인자로 넣어 주어야 한다.
.createHmac('topSecret!', yourSecretKey)
crypto.createHmac()은 알고리즘과 키를 인자로 받아야 한다.
crypto.createHmac(SHA256, yourSecretKey)
'백엔드 > session' 카테고리의 다른 글
session (0) | 2021.11.23 |
---|---|
쿠키(Cookie), 쿠키를 이용한 Client와 Server (0) | 2021.11.22 |
[인증/보안] 기초 HTTPS, https 암호화 방법, 공개키, 개인키,hash, salt (0) | 2021.11.22 |