반응형
1. 개요
- 앞선 여덟번째 포스팅에서 아래와 같이 CSRF처리를 하였다.
- API백앤드 서버의 경우 보안취약점에 대하여 점점 필수적으로 처리를 요구하고 있다.
- 특히 GS인증 같은 테스트를 받으려면 기본적으로 CSRF, SAME-SITE등을 적용해야한다.
- https://arckwon.tistory.com/entry/nestjs-typeorm-backend-csrf%EC%B2%98%EB%A6%AC-8
- 이번포스팅에서는 helmet 패키지를사용하여 최소한의 필요한 보안처리를 해보도록 하겠다.
2. Helmet 개념
- Helmet은 HTTP 헤더를 적절하게 설정하여 잘 알려진 웹 취약점으로부터 앱을 보호할 수 있습니다.
- 일반적으로 헬멧은 보안 관련 HTTP 헤더를 설정하는 작은 미들웨어 기능의 모음일 뿐입니다.
3. Helmet 상세
- https://github.com/helmetjs/helmet#how-it-works
- 위사이트에서 제공하듯이 기본적으로 아래와 같은 헤더를 설정할수 있다.
- 아래내용중에서 필수적으로 처리해야 하는 몇가지만 작성한다.
Content-Security-Policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Origin-Agent-Cluster: ?1
Referrer-Policy: no-referrer
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Content-Type-Options: nosniff
X-DNS-Prefetch-Control: off
X-Download-Options: noopen
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 0
4. Helmet 적용
- 패키지설치
# 패키지설치
$ npm i --save helmet
- Cross-Origin-Resource-Policy: same-origin
// main.ts
import helmet from 'helmet';
app.use(helmet({ crossOriginResourcePolicy: { policy: "same-site" } }));
- X-Content-Type-Options: nosniff
// main.ts
import helmet from 'helmet';
app.use(helmet.noSniff());
- X-XSS-Protection: 0
// main.ts
import helmet from 'helmet';
app.use(helmet.xssFilter());
※. 참고문헌
https://github.com/helmetjs/helmet#how-it-works
반응형
'개발 > nest.js' 카테고리의 다른 글
nestjs + typeorm backend JWT 로그인 / 소스포함 (0) | 2023.03.30 |
---|---|
nestjs + typeorm backend 회원가입 / 소스포함 (10) (0) | 2023.03.29 |
nestjs + typeorm backend csrf처리 (8) (0) | 2023.03.27 |
nestjs + typeorm backend 예외처리 (7) (0) | 2023.03.24 |
nestjs + typeorm backend 인터셉터,CORS (5) (0) | 2023.03.23 |