n8n-nodes-text-shield
Version:
n8n community node for sanitize text input
59 lines (34 loc) • 2.95 kB
Markdown
# n8n-text-shield
An n8n community node designed to sanitize text inputs, protecting your workflows from malicious code injection, including Cross-Site Scripting (XSS) and SQL Injection.
## Features
- **XSS Protection:** Sanitizes input text to remove malicious HTML and JavaScript code using the robust `DOMPurify` library.
- **SQL Injection Protection:** Optionally sanitizes input text to prevent SQL injection attacks by removing common SQL statements using a regular expression. This feature can be toggled on or off.
- **Preserves Data Context:** The node seamlessly integrates into your workflow by cloning the original data and adding the sanitized text as a new field, ensuring no data is lost.
- **Flexible Configuration:** Allows you to specify which field to sanitize and what to name the new output field.
- **Integrated Error Handling:** Works directly with n8n's built-in "Continue on Fail" setting for robust and straightforward error management.
## Prerequisites
Ensure you have a running n8n instance. For installation instructions, refer to the [n8n installation guide](https://docs.n8n.io/hosting/installation/).
## Installation
1. Navigate to **Settings > Community Nodes** in your n8n instance.
2. Select **Install a community node**.
3. Enter `n8n-text-shield` as the **NPM package name**.
4. Click **Install**.
You will need to restart your n8n instance for the node to become available in the editor.
## How to Use
You can find the **Text Shield** node under the "Transform" category in the nodes panel.
### Input Properties
- **Field to Sanitize:** The field containing the text you wish to sanitize. This is typically an expression pulling data from a previous node (e.g., {{ $json.body.comment }}).
- **Output Field Name:** The name for the new field that will be added to your data, containing the sanitized text. Defaults to sanitizedText.
- **Sanitize for SQL:** A checkbox that is disabled by default. When active, the node will also escape the text, making it safer for use in SQL queries. This runs after the HTML/JS sanitization.
### Outputs
- The node has a single output. If the sanitization is successful, the original item is passed on with the new sanitized field added to it.
### Error Handling
- The node integrates with n8n's native error handling.
- If "Continue on Fail" is OFF (default): The workflow will stop and show an error if sanitization fails for any item.
- If "Continue on Fail" is ON: The workflow will continue. The item that failed will be passed on, but with an error object added to its JSON data, allowing for graceful error management in your workflow.
## Core Dependencies
This node is built upon these excellent open-source libraries:
- [DOMPurify](https://github.com/cure53/DOMPurify) for XSS sanitization.
- [JSDOM](https://github.com/jsdom/jsdom) to provide a virtual DOM environment for DOMPurify.
## License
This project is licensed under the MIT License.