01. Helmet
- 다양한 HTTP 헤더를 설정하여 일반적인 보안 취약점으로부터 보호해주는 보안 관련 모듈.
- 크로스 사이트 스크립팅(XSS), 콘텐츠 스니핑, 클릭재킹 등과 같은 위험을 최소화할 수 있다.
1. 패키지 설치
npm install helmet
2. 설치 모듈 가져오기
const helmet = require("helmet");
3. 사용하기
// 기본 설정
app.use(helmet());
// 특정 세부 기능 하나하나 설정할때 사용
app.use(helmet.contentSecurityPolicy());
app.use(helmet.crossOriginEmbedderPolicy());
app.use(helmet.crossOriginOpenerPolicy());
app.use(helmet.crossOriginResourcePolicy());
app.use(helmet.dnsPrefetchControl());
app.use(helmet.expectCt());
app.use(helmet.frameguard());
app.use(helmet.hidePoweredBy());
app.use(helmet.hsts());
app.use(helmet.ieNoOpen());
app.use(helmet.noSniff());
app.use(helmet.originAgentCluster());
app.use(helmet.permittedCrossDomainPolicies());
app.use(helmet.referrerPolicy());
app.use(helmet.xssFilter());
- 많이 사용하는 모듈 종류
모듈명 | 기능 |
contentSecurityPolicy | 콘텐츠 보안 정책 설정 및 구성을 통해 의도하지 않은 내용이 페이지에 삽입되는 것을 방지 |
crossdomain | Adobe 제품의 교차 도메인 요청 처리 |
dnsPrefetchControl | Dns prefetching 비활성화 |
exprectCt | 인증서 투명성 처리 |
featurePolicy |
사이트의 기능 일부 제한 |
frameguard | Click Jacking 위험 완화 |
hidePoweredBy | Header의 제공 모듈을 숨겨 잠재적 위험을 숨김 |
hsts | 브라우저에게 HTTPS만을 통해서 사이트에 엑세스 할 수 있도록 요청 |
ieNoOpen | Internet Exproler가 신뢰할 수 없는 HTML을 열지 못하도록 방지 |
noSniff | X-Content-Type_Options를 설정하여 선언된 콘텐츠 유형으로부터 벗어난 응답에 대한 브라우저의 MIME sniffing을 방지 |
referrerPolicy | 참조 헤더를 숨김 |
xssFilter | XSS(Cross site Scripting) 공격 위험 완화 |
'JavaScript Dev. > Node.js' 카테고리의 다른 글
artillery를 이용한 서버 부하 테스트 (0) | 2023.08.06 |
---|---|
JWT 토큰 보안을 강화하기.... (0) | 2023.07.21 |
node-cron란?? (feat. cron) (0) | 2023.06.21 |
카카오 소셜 로그인(feat. passport-kakao, jwt) (0) | 2023.06.12 |
AWS EC2를 이용해 HTTPS 배포 (feat. 가비아) (2) | 2023.06.02 |