Node.js 保护应用程序安全的Node js技术或步骤

Node.js 保护应用程序安全的Node js技术或步骤,node.js,mongodb,security,Node.js,Mongodb,Security,我是这类工作的新手,我需要关于保护应用程序免受黑客攻击的技术或步骤的步骤和信息 目前,我正在使用Nodejs构建一个应用程序,我的数据库是MongoDB 我觉得我的应用程序不够安全,无法在生产环境中部署 谢谢。你可以参考这篇文章。 您可以添加更简单的头盔包。 .您可以使用 1.为了检查各种npm模块是否存在已知漏洞,节点安全项目提供了nsp工具来检查漏洞: $nsp支票 2.Synk根据Snyk的开源漏洞数据库检查应用程序是否存在依赖项中的任何已知漏洞 $ npm install -g snyk

我是这类工作的新手,我需要关于保护应用程序免受黑客攻击的技术或步骤的步骤和信息

目前,我正在使用Nodejs构建一个应用程序,我的数据库是MongoDB

我觉得我的应用程序不够安全,无法在生产环境中部署


谢谢。

你可以参考这篇文章。 您可以添加更简单的头盔包。 .

您可以使用

1.为了检查各种npm模块是否存在已知漏洞,节点安全项目提供了nsp工具来检查漏洞:

$nsp支票

2.Synk根据Snyk的开源漏洞数据库检查应用程序是否存在依赖项中的任何已知漏洞

$ npm install -g snyk
$ cd your-app
$ snyk test
3.为了防止我们的网站被大量的请求淹没,我们需要对我们的API设置某种速率限制

const RateLimit = require('express-rate-limit');

const limiter = new RateLimit({
  windowMs: 15*60*1000, // 15 minutes 
  max: 100, // limit each IP to 100 requests per windowMs 
  delayMs: 0 // disable delaying — full speed until the max limit is  reached
});
//适用于所有请求 app.uselimiter; 4.验证和清理用户数据需要使用类似validator.js的库

5.身份验证可由jwt、bcrypt、crypto完成

6.使用必要的HTTP头保护您的应用程序。默认情况下,头盔可帮助您应用标题。 例如:-

app.usehlmet.hsts{ 最大年龄:66666777, includeSubdomains:true };

头盔可以通过适当设置HTTP头帮助保护您的应用程序免受一些众所周知的web漏洞的攻击

头盔实际上只是九个较小的中间件函数的集合,用于设置与安全相关的HTTP头:

csp设置内容安全策略头以帮助防止跨站点脚本攻击和其他跨站点注入

hidePoweredBy删除X-POWER-By标头。hpkp添加了公钥钉扎头,以防止中间人攻击 证书

hsts设置严格的传输安全标头,该标头通过SSL/TLS将安全HTTP连接到服务器

ieNoOpen为IE8+设置X下载选项

noCache设置缓存控制和Pragma头以禁用客户端缓存

noSniff设置X-Content-Type-Options以防止浏览器从声明的内容类型嗅探响应

frameguard将X-Frame-Options标题设置为提供点击功能 保护

xssFilter将X-XSS-Protection设置为启用跨站点脚本XSS 在最新的web浏览器中进行筛选

app.useharm.xframe'allow-from'

使用开源sqlmap工具检测应用程序中的SQL注入漏洞 8.需要适当使用设置cookie安全选项

var session = require('cookie-session')
var express = require('express')
var app = express()

var expiryDate = new Date(Date.now() + 60 * 60 * 1000) // 1 hour
app.use(session({
  name: 'session',
  keys: ['key1', 'key2'],
  cookie: {
    secure: true,
    httpOnly: true,
    domain: 'example.com',
    path: 'foo/bar',
    expires: expiryDate
  }
}))
请参阅


查看23+Node.js安全最佳实践。