백엔드/session

checkpoint- session

테오구 2021. 11. 27. 12:36
728x90

다음 중 세션에 대한 설명으로 옳은 것을 모두 고르면?

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)

728x90