보안 수칙
비밀 키 · Redirect URI · state · PKCE · 토큰 보관에서 지켜야 할 것.
비밀 키
- 서버의 비밀 저장소에만 둡니다. 브라우저 코드 · 모바일 앱 · Git 저장소에 넣지 않습니다.
- 새어 나갔다고 의심되면 바로 재발급합니다. 재발급하면 이전 키는 즉시 쓸 수 없습니다.
Redirect URI
- 등록한 값과 정확히 같아야 합니다. 앞부분 일치 · 와일드카드는 허용하지 않습니다.
- https 를 씁니다. http 는 로컬 개발용 loopback(127.0.0.1)만 받습니다.
state 와 PKCE
- state 는 요청마다 새로 만들고, 돌아왔을 때 비교합니다. 다르면 버립니다.
- code_verifier 는 요청마다 새로 만들고 서버 세션에만 둡니다. code_challenge_method 는 S256 만 받습니다.
토큰 보관
- access · refresh token 은 서버에 암호화해 둡니다. 로그에 남기지 않습니다.
- 갱신할 때 받은 새 refresh token 으로 바꿔 저장합니다. 이전 것을 다시 쓰면 거절됩니다.
- Mall Story 는 토큰을 해시로만 저장합니다. 발급 응답 말고는 원문을 다시 줄 수 없습니다.