your programing

Node.js Express 프레임 워크 보안 문제

lovepro 2020. 12. 25. 23:34
반응형

Node.js Express 프레임 워크 보안 문제


아래 나열된 일반적인 보안 문제를 해결하는 Node / Express 앱에 추가해야하는 모듈을 찾고 있습니다.

  • 주입 취약점 (JavaScript, SQL, Mongo, HTML)
  • 세션 고정 및 하이재킹
  • 교차 사이트 취약성 (스크립팅, 위조 요청)
  • 대량 할당
  • 여기에 관련 문제를 삽입

당신의 도움을 주셔서 감사합니다!

----------

내가 찾은 몇 가지 리소스 :

우수 토크 (2012 년 11 월) : http://lanyrd.com/2012/asfws/sxzbm/ (슬라이드 참조)

ServerFault 질문 (2011-2012) : https://serverfault.com/questions/285123/is-node-js-mature-for-enterprise-security

주제에 대한 블로그 게시물 (2012 년 9 월) : http://codefol.io/posts/29-Why-Rails-and-not-Sinatra-or-Node-js-

익스플로잇 테스터 : https://code.google.com/p/skipfish/

여권 모듈 : https://github.com/jaredhanson/passport

EveryAuth 모듈 : https://github.com/bnoguchi/everyauth


저는 Writing Secure Express.js Apps 에 대한 훌륭한 출발점을 제공하는 블로그 게시물을 작성했습니다 . zeMirco에서 언급 한대로 csrf 및 헬멧 이외의 몇 가지 다른 사항을 다룹니다.

다른 하나는 express.js를 레일과 비교할 수 없다는 것입니다. 그들은 사과와 오렌지입니다. 예를 들어 Express와 함께 번들로 제공되는 ORM이 없으며 타사 모듈의 구현 또는 사용은 귀하에게 달려 있습니다.

나는 당신의 각 우려에 대해 분석하려고 노력할 것입니다.

-Injection Vulnerabilities (JavaScript, SQL, Mongo, HTML)

다시 말하지만, 이것들은 Express에 내장되지 않은 것입니다. 가장 가까운 것은 템플릿에 삽입하는 것에 대한 XSS 걱정입니다. Express 출력에 일반적으로 사용되는 Jade 또는 EJS 템플릿은 기본적으로 <> " '및 &를 인코딩하지만 JavaScript 또는 CSS에 대한 사용자 입력과 같이 걱정해야 할 다른 컨텍스트가 있음을 기억하십시오.

-Session fixation and hijacking

위의 블로그 게시물을 다시 참조하십시오. 그러나 Express는 대부분의 연결 미들웨어를 기반으로하고 사용합니다 . 이들 중 하나가 세션 미들웨어입니다. 여기서 가장 큰 것은 쿠키 플래그를 적절하게 설정하는 것입니다.

-Cross-Site Vulnerabilities (Scripting, Request Forgery)

위 참조. 또한 express.csrf () 미들웨어와 함께 제공됩니다. 언급 된 블로그 게시물은이를 구현하는 방법을 보여줍니다.

-Mass Assignment

이러한 유형의 취약성을 적용 할 수있는 개념이 없기 때문에 express.js의 문제는 아니지만 작성하는 사용자 정의 논리가 실제로이 문제에 취약 할 수 있으므로 코드가 취약한 지 확인하는 문제입니다. 사용한 타사 모듈이 ...


즉시 생각할 수있는 두 가지 모듈 :

  1. csrf : CRSF 보호 미들웨어.
  2. helmet : 다양한 보안 헤더를 구현하는 미들웨어

주의해야 할 한 가지는 bodyParser입니다. 참조 http://andrewkelley.me/post/do-not-use-bodyparser-with-express-js.html를


포괄 오류 처리기를 지정하는 경우 4xxDOS 취약성을 유발할 수 있으므로 서버를 다시 시작하거나 USER 오류 ( 범위) 에 대한 응답으로 해당 처리기에서 차단하는 작업을 수행해서는 안됩니다 . 이 취약점은에서 자동으로 해결 express-error-handler되며 서비스가 가능한 한 빨리 종료되므로 (활성 연결이 고갈되거나 시간 초과가 발생하는 경우) 다시 시작하는 것이 큰 문제는 아닙니다. 이 동작을 구현하면 익스플로잇 테스트에서 정말 큰 차이를 만들었습니다.

BTW, 처리되지 않은 모든 오류를 단순히 무시하는 것은 안전하지 않습니다. 그러면 응용 프로그램이 정의되지 않은 상태가되어 다른 유형의 DOS 취약점이 나타납니다.

참조 URL : https://stackoverflow.com/questions/14612143/node-js-express-framework-security-issues

반응형