> For the complete documentation index, see [llms.txt](https://docs.sec1.io/user-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sec1.io/user-docs/4-sast/3-javascript/unsanitized-user-input-in-dynamic-http-insertion-xss.md).

# Unsanitized user input in dynamic HTML insertion (XSS)

## Overview

* **Rule ID**: `javascript_lang_dangerous_insert_html`
* **Applicable Languages**: Javascript
* **Weakness ID**: CWE-79

## Description

Unsanitized user input in dynamic HTML insertion can lead to Cross-Site Scripting (XSS) attacks. This vulnerability occurs when user-provided data is directly inserted into the DOM without proper sanitization, potentially allowing attackers to execute malicious scripts.

## Remediation Guidelines

* **Do use** an HTML sanitization library to clean user input before inserting it into the HTML. This practice helps prevent XSS attacks by removing or neutralizing potentially harmful scripts.

  ```java
  import sanitizeHtml from 'sanitize-html';

  const html = `<strong>${user.Input}</strong>`;
  document.body.innerHTML = sanitizeHtml(html);
  ```

## References

* [**OWASP XSS explained**](https://owasp.org/www-community/attacks/xss/)
* [**CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')**](https://cwe.mitre.org/data/definitions/79.html)
* [**OWASP Top 10: A03:2021 - Injection**](https://owasp.org/Top10/A03_2021-Injection/)

## Configuration

To omit this rule during a scan, and to provide you with continuous 24/7 code-level scanning, you can employ our [**SAST TOOL**](https://scopy.sec1.io/login)
