Unsanitized user input in raw HTML strings (XSS)

Description

Applications should not include unsanitized user input in HTML. This can allow cross-site scripting (XSS) attacks.

Remediations

❌ Avoid including user input directly in HTML strings:

const html = `<h1>${req.params.title}</h1>`

✅ Use a framework or templating language to construct the HTML.

✅ When HTML strings must be used, sanitize user input:

import sanitizeHtml from 'sanitize-html'

const sanitizedTitle = sanitizeHtml(req.params.title)
const html = `<h1>${sanitizedTitle}</h1>`

Resources

Associated CWE

OWASP Top 10

Configuration

To skip this rule during a scan, use the following flag

bearer scan /path/to/your-project/ --skip-rule=javascript_lang_raw_html_using_user_input

To run only this rule during a scan, use the following flag

bearer scan /path/to/your-project/ --only-rule=javascript_lang_raw_html_using_user_input