Hyper Text Transfer Protocol Secure Socket
인증서를 기반으로 데이터 제공자의 신원을 보장받을 수 있으므로 공개키 암호화 방식을 사용.
layer: HTTP 요청을 SSL 혹은 TLS 라는 알고리즘을 이용해 내용을 암호화하여 데이터 전송.
어떠한 문자열에 '임의의 연산'을 적용하여 다른 문자열로 변환하는 것. 극히 드물게 다른 입력된 값인데 해시된 값이 같은 경우가 발생. 그 이유는 해시된 값은 항상 고정된 길이의 값으로 나타내는 태생적 한계가 있으므로, 중복된 값이 발생 할 수 있음.
암호화해야하는 값에 어떤 '별도 값'을 추가하여 결과를 변형하는 것.
서버에서 클라이언트에 데이터를 저장하는 방법의 하나.
로그인상태 유지, 각종 configulations 등을 저장해놓음. 하지만 기본적으로는 쿠키는 오랜 시간 동안 유지될 수 있고, 자바스크립트를 이용해서 쿠키에 접근할 수 있기 때문에 쿠키에 민감한 정보를 담지 말자.
사용자가 인증에 성공한 상태.
서버가 client에 유일하고 암호화된 ID를 부여. 중요한 데이터는 서버에서 관리. Express-session 모듈을 이용하여 세션관리 가능. 보통 하나의 서버에서 접속 상태를 저장하므로, 여러 개의 서버를 가지고 있을 때 불리하다. 여러 개의 서버에서 같은 세션 데이터에 접근하고 싶을 때는 session clustering 혹은 공통 session store를 사용하자.
req.session: 세션 저장소
express.session: 참조할 것.
set-cookie: connect.sid=__ 로그인 성공 응답.
인증이 필요한 정보 요청.

사용자가 서버에게 보내는 요청을 다른 피싱사이트에서 위조하는 것임. 기존의 로그인한 기록(session)을 바탕으로 서버가 클라이언트의 요청을 믿기 때문에 발생함. sameSite 옵션을 none이 아닌 것으로 사용하면, 서버는 클라이언트에게 신뢰할 수 있는 요청이 아닌지를 판단할 수 있으므로, CSRF 공격 방지 가능.
해커는 GET과 POST를 통해 변조된 요청을 보내게 할 수 있으며, CORS 설정을 통해 해당 공격을 막는데 도움을 줄 수 있음.