쿠키와 세션은 "사용자 상태 데이터"를 보관
쿠키는 브라우저에 저장되고, 세션은 서버에 저장
팁: 민감한 데이터는 세션으로 저장하고, 장기적으로 필요한 간단한 데이터는 쿠키로 저장
유저 인증을 위해 사용되는 암호화된 토큰. 주로 access token, refresh token으로 나뉘어 사용됨
- access token: 사용자가 특정 서비스에 액세스할 수 있도록 허가해주는 토큰
- refresh token: 만료된 액세스토큰 재발급해주는 토큰
Cross Origin Resource Sharing.
서버가 다른 출처로부터의 접근을 허용(CORS)/제한(SOP)하는 메커니즘.
예를들어, 클라이언트에서 API호출을 할 때 각각 다른 도메인을 사용하는 경우가 많은데, 이를 허용하는게 CORS 정책.
기본적으로는 다른 출처로 요청을 보내는건 의심스러운 행동으로 브라우저가 판단하기 때문에 허용하지 않으면 에러가 발생
해결방법: 서버에서 세팅하기, proxy 서버 사용하기..
proxy 서버란? 클라이언트와 서버 사이에 중계 기능을 대리로 해주는 것으로, 때로는 클라이언트 때로는 서버의 역할을 수행
클라이언트 사이드 코드를 웹사이트에 삽입하는 공격.
예를들어, 사용자 정보를 탈취하는 스크립트를 삽입
HTML 표준에서는 innerHTML을 통해 삽입된 스크립트는 정책상 실행되지 않는다.
리액트 사용할 때도 마찬가지로 jsx 마크업이 이 방법을 사용하여 XSS 공격을 방어한다
입력 폼에 악의적으로 조작된 쿼리를 삽입해 DB 데이터를 탈취하는 공격
방어 방법: 입력 폼에 유효성 체크 (정규식 등)
애플리케이션에서 자주 요청되는 데이터를 저장하여 서버 부하를 줄이고 응답 속도를 개선
대표적으로, 브라우저 캐시 (웹브라우저에 저장), 프록시 캐시 (프록시 서버에 저장), CDN 캐시 (CDN 서버에 저장), 애플리케이션 캐시 (서버/애플리케이션 레벨에서 저장)
악성 웹사이트가 사용자의 요청을 도용하여, 의도치 않은 요청을 서버에 보내게 만드는 공격
예를 들어, 피해자가 공격자의 웹 사이트에 들어왔을 때 해당 사용자의 요청인 것처럼 타 사이트에 GET 요청을 보내 사용자의 개인정보를 탈취