일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- list
- AWS
- animation
- mongoose
- CLASS
- class component
- ReactNative
- map
- Kotlin
- vuex
- MINUS
- 생명주기
- react native
- Service
- ConstraintLayout
- Generic
- union
- enum
- Interface
- Swift
- collection
- docker
- Filter
- elementAt
- function
- LiveData
- docker-compose
- recyclerview
- lifecycle
- Foreign Key
- Today
- Total
개발 일기
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 |