helmet은 node Express와 함께 사용되는
보안 강화 모듈
이다.
HTTP 헤더의 설정 변경을 통해 위험한 웹 취약점으로부터 서버를 보호 해 준다.
Helmet은 Express의 미들웨어 모듈
이며, 여러 미들웨어 모듈을 합쳐 놓은 미들웨어 패키지 모듈
이다.
Helmet에는 아래와 같은 기능을 하는 9가지의 미들웨어
가 있다.
csp
: Content-Security-Policy 헤더를 설정하여 XSS(Cross-site Scripting) 공격 및 기타 교체 사이트 인젝션을 예방한다.
hidePoweredBy
: X-Powered-By 헤더를 제거한다.
hpxp
: Public Key Pinning 헤더를 추가하여, 위조된 인증서를 이용한 중간자 공격을 방지한다.
hsts
: 서버에 대한 안전한(SSL/TLS를 통한 HTTP) 연결을 적용하는 Strict-Transport-Security 헤덜를 설정한다.
ieNoOpen
: IE8 이상에 대해 X-Download-Options를 설정한다.
noCache
: Cache-Control 및 Pragma 헤더를 설정하여 클라이언트 측에서 캐싱을 사용하지 않도록 한다.
noSniff
: X-Content-Type-Options를 설정하여, 선언된 콘텐츠 유형으로부터 벗어난 응답에 대한 브라우저의 MIME 가로채기를 방지한다.
frameguard
: X-Frame-Options 헤더를 설정하여 clickjacking에 대한 보호를 제공한다.
xssFilter
: X-XSS-Protection을 설정하여 대부분의 최신 웹 브라우저에서 XSS(Cross-Site Scipting) 필터를 사용하도록 한다.
$ npm install --save helmet
// ...
const helmet = require('helmet')
app.use(helmet())
// ...
참고로 Helmet을 사용하지 않더라도,
X-Powerd-By 헤더
는 사용하지 않도록 설정 해 둬야 서버 공격에 대응할 수 있다고 한다~~~