[Express] 보안

2023. 7. 5. 23:46공부 중/Node.js

0. 참고자료

 

 

보안 - 생활코딩

수업소개 Express 애플리케이션을 구현할 때 주의해야 할 보안적인 이슈를 살펴봅시다.  강의 소스코드 변경사항 main.js var express = require('express'); var app = express(); var fs = require('fs'); var bodyParser = req

opentutorials.org

 

 

GitHub - helmetjs/helmet: Help secure Express apps with various HTTP headers

Help secure Express apps with various HTTP headers - GitHub - helmetjs/helmet: Help secure Express apps with various HTTP headers

github.com

 


1. 보안

 

 

프로덕션 환경의 Express를 위한 보안 우수 사례

프로덕션 우수 사례: 보안 개요 “프로덕션 (production)” 이라는 용어는 소프트웨어 라이프사이클 중 애플리케이션 또는 API가 최종 사용자 또는 소비자에게 정식으로 제공되는 단계를 말합니다.

expressjs.com

Express 공홈에서는 보안을 위해서 다음과 같은 점을 거론했다.

 


2. dependency 보안

 

 

프로덕션 환경의 Express를 위한 보안 우수 사례

프로덕션 우수 사례: 보안 개요 “프로덕션 (production)” 이라는 용어는 소프트웨어 라이프사이클 중 애플리케이션 또는 API가 최종 사용자 또는 소비자에게 정식으로 제공되는 단계를 말합니다.

expressjs.com

npm@6부터 npm은 자동으로 모든 설치 요청을 검사합니다.

 

또한 npm audit을 이용해 여러분의 의존성 트리를 검사할 수 있습니다.

 

가. audit

npm audit

23년 7월 기준 nsp는 더 이상 지원하지 않는다.

 

이는 Node Security Platform(통칭 nsp )를 npm, Inc가 인수했기 때문이다.

 

npm v6가 나오면서 npm audit이라는 기능에 녹아들었다.

 

나. Snyk

 

 

Snyk | Developer security | Develop fast. Stay secure. | Snyk

Snyk helps software-driven businesses develop fast and stay secure. Continuously find and fix vulnerabilities for npm, Maven, NuGet, RubyGems, PyPI and more.

snyk.io

npm install -g snyk

cd your-app

snyk test //취약점을 검사

 


3. Helmet

Helmet helps secure Express apps by setting HTTP response headers.

자주 발생하는 보안 이슈를 자동으로 해결하는 모듈.

 

가. 설치

npm install --save helmet

 

나. 예시

const helmet = require('helmet');

app.use(helmet());

인증서를 구매하기 전까지는 꺼놓자.