Node.js의 'Helmet' 모듈에 대해서 간단하게 알아보자.

express Helmet 모듈

helmet 모듈은 정보보안을 위해서 서버와 클라이언트 간에 중요한 정보가 실수로 전달되지 않도록, 서버에서 다양한 HTTP 헤더를 자동으로 설정해주는 편리한 모듈이다. 즉, 다양한 HTTP 헤더 설정을 통해 서버 어플리케이션의 보안을 강화해주는 아주 착한 모듈이다.

사용법

사용법도 매우 간단하다.
사용하는 에디터의 터미널에서 아래와 같이 helmet 모듈을 설치해준다.

npm install helmet

그리고 상단에 아래와 같이 선언해서 사용해주면 끝이다.

const helmet = require("helmet");
const express = require("express");
const app = express();

app.use(helmet());

기본적으로 helmet은 세부적인 여러 미들웨어 함수를 포함하고 있지만, 위와 같이 단순히 helmet()으로 호출하게 되면 default로 지원하는 모듈이 있다

default 모듈
dnsPrefetchContol
frameguard
hidePoweredBy
hsts
ieNoOpen
noSniff
xssFilter

이외의 여러 미들웨어 함수들이 있는데, 각 미들웨어 함수들의 기능은 아래와 같다.

helmet 모듈 미들웨어들의 기능

helmet 모듈에서 많이 사용하는 미들웨어들을 소개한다.

모듈명기능
contentSecurityPolicy콘텐츠 보안 정책 설정 및 구성을 통해 의도하지 않은 내용이 페이지에 삽입되는 것을 방지
crossdomainAdobe 제품의 교차 도메인 요청 처리
dnsPrefetchControlDns prefetching 비활성화
exprectCt인증서 투명성 처리
featurePolicy사이트의 기능 일부 제한
frameguard클릭재킹 위험 완화
hidePoweredBy헤더의 제공 모듈을 숨겨 잠재적 위험을 숨김
hsts브라우저에게 HTTPS만을 통해서 사이트에 엑세스 할 수 있도록 요청
ieNoOpen인터넷 익스플로러가 신뢰할 수 없는 HTML을 열지 못하도록 방지
noSniffX-Content-Type-Options 를 설정하여 선언된 콘텐츠 유형으로부터 벗어난 응답에 대한 브라우저의 MIME 스니핑을 방지
referrerPolicy참조 헤더를 숨김
xssFilterXSS(Cross Site Scripting) 공격 위험 완화

참조 사이트
https://llshl.tistory.com/39
https://m.blog.naver.com/on21life/221949525422

좋은 웹페이지 즐겨찾기