개발 일기

Node js 보안 - (1) 본문

서버/Node.js

Node js 보안 - (1)

이건욱

원문 -> https://blog.risingstack.com/node-hero-node-js-security-tutorial/

 

Node Hero - Node.js Security Tutorial | @RisingStack

Learn how to defend your applications against the most common attack vectors from this Node.js security tutorial. 11th part of the Node Hero series.

blog.risingstack.com

 

규칙 1:) eval을 쓰지 않기!.

  • setInterval
  • setTimeout
  • new Function(String)

이러한 내용들은 code injection 공격에 취약합니다.

 

규칙 2:) 항상 'use strict' 모드를 사용

 

코드내에 존재하는 에러를 제거해주고 , 에러 내용을 출력합니다.

 

규칙 3:) 에러처리에 대해서 주의하자.

에러 처리를 통해 정보가 누출 되지 않도록 주의가 필요합니다. ex) X-Powered-By:Express

 

규칙 4:) 코드 정적분석을 통해 코드 보안을 강화하자.

EsLint ,  Standard code style 조합으로 정적분석을 실행하게 되면 개발 단계에서 많은 버그를 제거할수 있습니다.

 

규칙 5:) 슈퍼유저의 권한으로 프로세스를 실행 X

Http 요청을 전달하기 위해서는 443 , 80 직접적으로 사용하지 말고 프록시 설정을 통해서 사용하자.

 

규칙 6:) 보안에 관련된 HTTP헤더 정보를 설정

Node.js 에서는 helmet() 이라는 라이브러리를 통해서 쉽게 설정이 가능합니다!.

 

규칙 7:) 적절한 세션관리를 진행

secure - https 요청이 들어올때에만 쿠키를 전송하도록 설정

httponly - javascript에서 쿠키를 접근하는것을 허용하지 않습니다. XSS 공격에 방지하는데 도움이 됩니다.

 

규칙 8:) 쿠키의 유효범위를 지정합니다.

domain - 요청한 URL 과 서버의 도메인이 같은지 비교합니다.

path - 도메인이 접근 가능한 URL Path을 명시합니다.

expires - 만료 시간을 작성합니다.

 

규칙 9:) Retire.js로 취약점을 찾을수 있습니다.

 

규칙 10:) Node Security Platform CLI을 사용하고 있는 module을 검사합니다.

npm install nsp --global
# From inside your project directory
nsp check

 

'서버 > Node.js' 카테고리의 다른 글

Node Mysql ?  (0) 2020.04.18
bcrypt ?  (0) 2020.04.15
Node Mailer 란?  (0) 2020.04.04
body-parser  (0) 2020.03.27
Sharp ( 이미지 resize )  (0) 2020.03.26
Comments