728x90
Swagger 문서에 왜 보안을 걸어야 할까?
실 서비스 중인 사이트에서 swagger 문서를 아무나 접근 할 수 있으면 어떻게 될까?
open api 를 제공 하는게 아니라면 모든 프로젝트 구조를 보여주는게 되지 않을까
그래서 해당 패키지를 설치하고 코드를 추가하자
npm install express-basic-auth
main.ts
import * as basicAuth from 'express-basic-auth';
app.use(
['/docs'],
basicAuth({
challenge: true,
users: {
[process.env.SWAGGER_USER]: process.env.SWAGGER_PASSWORD,
},
}),
);
해당 코드처럼 사용하는 이유
.env id 와 pw 를 관리해 코드에 하드코딩 안하고 환경변수로 지정
['/docs'], 해당 swagger 문서를 적어준다. 만약 없다면 모든페이지가 암호가 걸린다.
challenge 이유
대충 변역하면
challenge 옵션은 기본적으로 false 이고
false 상태면 미인증된 요청에 대한 응답에 WWW-Authenticate 챌린지 헤더를 추가하지 않는데
브라우저에서 인증이 필요한 페이지에 팝업을 표시하지 않음
true 상태면 WWW-Authenticate 챌린지 헤더를 추가하고
브라우저에서 인증이 필요한 페이지에 팝업을 표시함
다음은 challenge 가 false 일때
true 일때
참고 링크
https://www.npmjs.com/package/express-basic-auth
'Dev' 카테고리의 다른 글
Ubuntu 도커 gpg key 에러 (0) | 2024.03.28 |
---|---|
우분투 프로(Ubuntu Pro) 활성화 하기 (0) | 2024.03.10 |
포크번(porkbun)도메인에 티스토리 연결 (0) | 2024.02.01 |