文档章节

Node.js 安全清单

乱蓬头
 乱蓬头
发布于 2017/06/29 14:36
字数 670
阅读 12
收藏 0

摘要: 前言 安全性,总是一个不可忽视的问题。许多人都承认这点,但是却很少有人真的认真地对待它。所以我们列出了这个清单,让你在将你的应用部署到生产环境来给千万用户使用之前,做一个安全检查。 以下列出的安全项,大多都具有普适性,适用于除了Node.js外的各种语言和框架。

前言

安全性,总是一个不可忽视的问题。许多人都承认这点,但是却很少有人真的认真地对待它。所以我们列出了这个清单,让你在将你的应用部署到生产环境来给千万用户使用之前,做一个安全检查。

以下列出的安全项,大多都具有普适性,适用于除了Node.js外的各种语言和框架。但是,其中也包含一些用Node.js写的小工具。

配置管理

安全性相关的HTTP头

以下是一些安全性相关的HTTP头,你的站点应该设置它们:

  • Strict-Transport-Security:强制使用安全连接(SSL/TLS之上的HTTPS)来连接到服务器。

  • X-Frame-Options:提供对于“点击劫持”的保护。

  • X-XSS-Protection:开启大多现代浏览器内建的对于跨站脚本攻击(XSS)的过滤功能。

  • X-Content-Type-Options: 防止浏览器使用MIME-sniffing来确定响应的类型,转而使用明确的content-type来确定。

  • Content-Security-Policy:防止受到跨站脚本攻击以及其他跨站注入攻击。

Node.js中,这些都可以通过使用Helmet模块轻松设置完毕:

 
  1. var express = require('express');
  2. var helmet = require('helmet');
  3.  
  4. var app = express();
  5.  
  6. app.use(helmet());

Helmet在Koa中也能使用:koa-helmet

当然,在许多的架构中,这些头会在Web服务器(Apache,nginx)的配置中设置,而不是在应用的代码中。如果是通过nginx配置,配置文件会类似于如下例子:

 
  1. # nginx.conf
  2.  
  3. add_header X-Frame-Options SAMEORIGIN;
  4. add_header X-Content-Type-Options nosniff;
  5. add_header X-XSS-Protection "1; mode=block";
  6. add_header Content-Security-Policy "default-src 'self'";

完整的例子可以参考这个nginx配置

如果你想快速确认你的网站是否都设置这些HTTP头,你可以通过这个网站在线检查:http://cyh.herokuapp.com/cyh 。

客户端的敏感数据

当部署前端应用时,确保不要在代码中暴露如密钥这样的敏感数据,这将可以被所有人看到。

现今并没有什么自动化检测它们的办法,但是还是有一些手段可以用来减少不小心将敏感数据暴露在客户端的概率:

  • 使用pull request更新代码

  • 建立起code review机制

本文转载自:http://click.aliyun.com/m/24501/

乱蓬头
粉丝 0
博文 382
码字总数 2595
作品 0
私信 提问
使用 node.js 进行服务器端 JavaScript 编程

简介: node.js 是一个可以使用 JavaScript 开发服务器端应用的平台。它依托于 Google V8 JavaScript 引擎,并采用事件 I/O 的架构,可以用来创建高性能服务器。本文详细介绍了 node.js 的基...

IBMdW
2011/07/22
1K
2
ESC服务搭建CheckList

文档说明 1.2.3. :该列表符号表示必执行项目。 *:该列表符号表示检查项目,检查是否可能出现该情况 使用ubuntu14.04 清单 一,配置安全策略 1.修改安全组策略,SSH关闭22端口,开启其他登陆...

随风溜达的向日葵
2018/06/21
27
0
Nodejs:使用Mongodb存储和提供后端CRD服务

本文会把一个对象todo对象(有属性{id,name})存储到Mongodb,做查询删除的测试(Create Remove Delete = CRD)。这个测试包括使用Mongodb Shell,使用CallBack古典风格的访问代码,以及使用...

刘传君
2018/08/14
0
0
【联想】B2B2C商城前端开发项目(react)

【需求描述】 一、项目背景: 需要开发一个B2B2C商城,项目主要分为前台商城和后台管理系统,后台接口甲方提供,现在需要将网站前端众包出来,寻找合适的前端团队承接。 二、甲方提供资料清单...

北京恒拓开源网络技术有限公司
2018/11/20
0
0
​Node.js 9.10.0, 8.11.0, 6.14.0 和 4.9.0 齐发布

Node.js 一口气发布了四个版本的更新,分别是 9.10.0, 8.11.0, 6.14.0 和 4.9.0,其中 8.11.0 , 4.9.0 和 6.14.0 是 LTS 长期支持版。四个版本的都升级到了 OpenSSL 1.0.2o,此外还修复了一些...

淡漠悠然
2018/03/30
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
35分钟前
3
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
38分钟前
4
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
今天
7
0
MySQL 表崩溃修复

MySQL日志报错 2019-10-19 13:41:51 19916 [ERROR] /usr/local/mysql/bin/mysqld: Table './initread_hss/user_info' is marked as crashed and should be repaired2019-10-19 13:41:51 1......

雁南飞丶
今天
6
0
Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部