Rules / JavaScript / TypeScript
SHIELD-JS-022
Cookie set without HttpOnly/Secure flags
What it detects
A session/auth cookie without httpOnly is readable by XSS; without secure it is sent over plaintext HTTP.
How to fix
Set httpOnly, secure and sameSite flags on session/auth cookies (res.cookie(name, val, { httpOnly: true, secure: true })).
Vulnerable — Shield flags thissession.js
const express = require('express');
const app = express();
app.get('/login', (req, res) => {
res.cookie('session', 'abc123token');
res.send('ok');
});Fixed — scans cleansession.js
const express = require('express');
const app = express();
app.get('/login', (req, res) => {
res.cookie('session', 'abc123token', { httpOnly: true, secure: true, sameSite: 'strict' });
res.send('ok');
});Both snippets are verified against the shipped scanner: the vulnerable one triggers SHIELD-JS-022, the fixed one does not.