
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
Logic behind CSRF token creation and verification.
Read Understanding-CSRF for more information on CSRF. Use this module to create custom CSRF middleware.
Looking for a CSRF framework for your favorite framework that uses this module?
$ npm install csrf
This module includes a TypeScript declaration file to enable auto complete in compatible editors and type information for TypeScript projects.
var Tokens = require('csrf')
Create a new token generation/verification instance. The options argument is
optional and will just use all defaults if missing.
Tokens accepts these properties in the options object.
The length of the internal salt to use, in characters. Internally, the salt
is a base 62 string. Defaults to 8 characters.
The length of the secret to generate, in bytes. Note that the secret is
passed around base-64 encoded and that this length refers to the underlying
bytes, not the length of the base-64 string. Defaults to 18 bytes.
Create a new CSRF token attached to the given secret. The secret is a
string, typically generated from the tokens.secret() or tokens.secretSync()
methods. This token is what you should add into HTML <form> blocks and
expect the user's browser to provide back.
var secret = tokens.secretSync()
var token = tokens.create(secret)
Asynchronously create a new secret, which is a string. The secret is to
be kept on the server, typically stored in a server-side session for the
user. The secret should be at least per user.
tokens.secret(function (err, secret) {
if (err) throw err
// do something with the secret
})
Asynchronously create a new secret and return a Promise. Please see
tokens.secret(callback) documentation for full details.
Note: To use promises in Node.js prior to 0.12, promises must be
"polyfilled" using global.Promise = require('bluebird').
tokens.secret().then(function (secret) {
// do something with the secret
})
A synchronous version of tokens.secret(callback). Please see
tokens.secret(callback) documentation for full details.
var secret = tokens.secretSync()
Check whether a CSRF token is valid for the given secret, returning
a Boolean.
if (!tokens.verify(secret, token)) {
throw new Error('invalid token!')
}
The csurf package is another middleware for CSRF token creation and validation, specifically designed to work with Express.js. It provides similar functionality to csrf but is more tightly integrated with Express, making it easier to use in Express applications.
The csrf-csrf package is a lightweight alternative for CSRF protection. It offers similar functionalities to csrf but is designed to be simpler and more straightforward, making it a good choice for smaller projects or those that do not require the full feature set of csrf.
FAQs
primary logic behind csrf tokens
The npm package csrf receives a total of 337,345 weekly downloads. As such, csrf popularity was classified as popular.
We found that csrf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.