Node Security helps you keep your node applications secure. With Node Security you can:
npm install -g nsp
nsp --helpto find out more.
You can adjust how the client outputs findings by specifying one of the following format options:
nsp check --output summary
Additionally, you can use third-party formatters. The packages of custom formatters must adhere to the naming scheme
nsp-formatter-<name> and can then be referenced by that name:
$ npm install -g nsp nsp-formatter-checkstyle$ nsp check --output checkstyle
Please note that in case of naming conflicts built-in formatters (as listed above) take precedence. For instance,
nsp-formatter-json would never be used since nsp ships with a
The Node Security CLI supports adding exceptions. These are advisories that you have evaluated and personally deemed unimportant for your project.
In order to leverage this capability, create a
.nsprc file in the root of your project with content like the following:
The URLs used in the array should match the advisory link that the CLI reports. With this in place, you will no longer receive warnings about any advisories in the exceptions array.
Be careful using this feature. If you add code later that is impacted by an excluded advisory, Node Security has no way of knowing. Keep a careful eye on your exceptions.
The Node Security CLI has proxy support by using proxy-agent.
The currently implemented protocol mappings are listed in the table below:
To configure the proxy set the proxy key in your
.nsprc file. This can be put in the root of your project or in your home directory.
nsp has an offline mode which was previously undocumented. We recommend not relying on offline support as it may become unsupported in the future as new features are added.
First you need to obtain the offline advisories database. Do this by running the
npm run setup-offline script provided by nsp
Second you need to tell nsp where to find that file. You can do that 3 ways.
nsp check --offline --advisoriesPath=/path/to/advisories.json
When you call nsp check you will want to use the --offline flag
A couple of notes
codeclimate-nodesecurity is a Code Climate engine that wraps the Node Security CLI. You can run it on your command line using the Code Climate CLI, or Code Climate's hosted analysis platform.
Note that this engine only works if your code has a
npm-shrinkwrap.json file committed.
First, build this repo with docker
git clone firstname.lastname@example.org:nodesecurity/nsp cd nsp docker build -t codeclimate/codeclimate-nodesecurity .
Install the codeclimate CLI
brew tap codeclimate/formulae brew install codeclimate
Go into your project's directory and enable codeclimate
.codeclimate.yml to add the engine like so
---engines:nodesecurity:enabled: trueexclude_paths: 
And finally run it
codeclimate analyze --dev
Should you come across data in an advisory that you feel is wrong or is a false positive please let us know at email@example.com. We endeavor to make this process better in the future, however this is the best place to resolve these issues at the present.
Node Security (+) is brought to you by ^lift security.
Copyright (c) 2016 by ^Lift Security Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Note: the above text describes the license for the code located in this repository only. Usage of this tool or the API this tool accesses implies acceptance of our terms of service.