Helmet.js_Express

miin·2022년 4월 4일
0

Express & node.js

목록 보기
4/10
post-thumbnail

정의

  • express사용시 http 헤더 설정을 자동으로 바꿔주어 앱의 취약성으로 부터 앱을 보호할 수 있는 패키지(서버 보안성 향상)
  • app.use(hepmet())만 설정할 경우 기본적인 보안(x-powered-by등)만 설정해주며, csp, exprectCt,hpkp,noCache, referrerPplicy는 적용되지 않는다. 이를 적용하려면 app.use(helmet.noCache()); app.use(hepmet.hpkp());으로 사용

설치

yarn add helmet @types/helmet --save

사용예시

import helmet from 'helmet';

// 기본 11개 미들웨어 사용
app.use(helmet());

// helmet.contentSecurityPolicy 제외한 기본 10개 미들웨어 사용
app.use(
  helmet({
    contentSecurityPolicy: false // cross-site 허용
  })
);

종류

  • csp: Content-Security-Policy 헤더 설정. XSS(Cross-site scripting) 공격 및 기타 교차 사이트 인젝션 예방,
    url에서 가져온 이미지, 동영상, js, css파일등을 막는 역할을 한다. 설정할때 관련 url을 모두 추가해줘야 한다
  • hidePoweredBy: X-Powered-By 헤더 제거.
  • hpkp: Public Key Pinning 헤더 추가. 위조된 인증서를 이용한 중간자 공격 방지.
  • hsts: SSL/TLS를 통한 HTTP 연결을 적용하는 Strict-Transport-Security 헤더 설정.
  • noCache : Cache-Control 및 Pragma 헤더를 설정하여 클라이언트 측에서 캐싱을 사용하지 않도록 함.
  • frameguard : X-Frame-Options 헤더 설정하여 clickjacking에 대한 보호 제공.
  • ieNoOpen : (IE8 이상) X-Download-Options 설정.
  • xssFilter : X-XSS-Protection 설정. 대부분의 최신 웹 브라우저에서 XSS(Cross-site - scripting) 필터를 사용.
  • noSniff : X-Content-Type-Options 설정하여, 선언된 콘텐츠 유형으로부터 벗어난 응답에 대한 브라우저의 MIME 가로채기를 방지.

0개의 댓글