Node.js Express Framework安全问题

D.D*_*iso 57 security node.js express

我正在寻找应该添加到Node/Express应用程序的模块,以解决下面列出的一般安全问题:

  • 注入漏洞(JavaScript,SQL,Mongo,HTML)
  • 会话固定和劫持
  • 跨站点漏洞(脚本,请求伪造)
  • 批量分配
  • 在此插入相关问题

谢谢你的帮助!

----------

我找到的一些资源:

优秀演讲(11/2012):http://lanyrd.com/2012/asfws/sxzbm/ (见幻灯片)

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

关于主题的博客文章(9/2012):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

小智 45

我写了一篇博文,为编写Secure Express.js应用程序提供了一个很好的起点.它涵盖了zeMirco提到的除csrf和头盔之外的其他一些东西.

另一件事是你无法将express.js与rails进行比较.它们是苹果和橘子.例如,没有与Express捆绑在一起的ORM,第三方模块的实现或使用取决于您.

我会尝试分析您的每个问题.

-Injection Vulnerabilities (JavaScript, SQL, Mongo, HTML)
Run Code Online (Sandbox Code Playgroud)

同样,这些都不是表达的内容.最接近的是XSS担心模板中的注入问题.通常与快速输出一起使用的Jade或EJS模板编码<>"'和&默认情况下,但请记住还有其他上下文,例如用户输入JavaScript或CSS,您需要担心.

-Session fixation and hijacking
Run Code Online (Sandbox Code Playgroud)

再次看到上面的博客文章,但Express基于并使用了大多数连接中间件,其中一个是会话中间件.这里最重要的是正确设置你的cookie标志.

-Cross-Site Vulnerabilities (Scripting, Request Forgery)
Run Code Online (Sandbox Code Playgroud)

往上看.它还附带了express.csrf()中间件.提到的博客文章展示了如何实现它.

-Mass Assignment
Run Code Online (Sandbox Code Playgroud)

不是express.js的问题,因为它没有适用这种类型的易受攻击的概念,但是你编写的自定义逻辑实际上可能容易受到这个问题的影响,所以再次证明你的代码是否容易受到攻击或如果您使用的第三方模块是......

  • 博客帖子链接似乎已经死了.以下是一些常见的Express.js安全问题的另一个资源:https://gist.github.com/cerebrl/6487587 (2认同)

zem*_*rco 9

我可以立即想到的两个模块:

  1. csrf:CRSF保护中间件.
  2. 头盔:实现各种安全标头的中间件