# 본 게시물은 egoing님의 생활코딩 강의를 듣고 정리한 내용입니다
Express 홈페이지 상단의 Advanced topics 탭에 보면
app을 구현할 때 주의해야 할 보안관련 사항들이 있습니다.
1. Don’t use deprecated or vulnerable versions of Express
- 항상 최신 Express버전만을 이용할 것.
2. Use TLS
- http가 아닌, https를 이용하여 암호화된 내용을 전송
3. Use Helmet
- Helmet모듈을 이용하여 Well-know vulnerability들을 보완할 것.
$ npm install --save helmet
// helmet모듈을 설치
// ...
const helmet = require('helmet') // helmet 모듈 import
app.use(helmet()) // middleware를 서버 앱에게 적용
// ...
이렇게 해주면
서버 앱이 HTTP Response를 보낼 때
Response Header에 특수한 설정을 해 보냄으로써
well-known web vulnerabilities들을 방지해준다고 합니다.
4. Use cookies securely
- 쿠키는 보안과 관련한 매우 중요한 사항이므로 추후 게시물을 통해 다루겠습니다.
5. Prevent brute-force attacks against authorization
- Captcha, Re-Captcha, 또는 특정 횟수 로그인 실패 시 제약을 주는 등의 설정을 하여
Brute force공격을 방지하라는 의미인 것 같습니다.
6. Ensure your dependencies are secure
- 직역하면 dependencies들을 안전하게 관리하라는 의미입니다.
Application내 package.json파일을 보면
객체 내부의 dependencies 프로퍼티의 value로
"설치된 모듈" = "버전 정보" 정보가 있습니다.
사용하고 있는 모듈은 항상 최신 버전을 유지해야 합니다.
outdate된 버전을 이용하면
그 버전에 해당하는 Well-kenow vulnerability가 발생하니까요.
$ snyk test
snyk라는 모듈을 설치하고
서버 앱이 있는 디렉토리에서 위 명령어를 실행하면
자동으로 app내부에 import된 여러 모듈들을 분석하여
취약한 점이 있는지 탐지해준다고 합니다.
'Back-End > node.js' 카테고리의 다른 글
[[node.js]] Session Cookie와 Permanent Cookie (0) | 2022.03.09 |
---|---|
[Node.js] node.js로 cookie 다루기 (0) | 2022.03.07 |
Express module의 error handling (0) | 2022.03.02 |
Express 모듈에서 static file의 서비스 (0) | 2022.03.01 |
Node.js Middleware의 개념 및 실행 순서 (0) | 2022.03.01 |