vue-sanitize-directive

Vue directive for HTML sanitization.
140,135 12
Install
npm install vue-sanitize-directive
Latest Version:0.2.1
License:MIT
Last Updated:Apr 29, 2023
Links: GitHub  ·  npm
Maintainer: leopiccionia

v-sanitize

Vue's default v-text is HTML-insensitive, while v-html doesn't perform sanitization by default.

v-sanitize is a Vue directive for HTML sanitization, powered by the flexible sanitize-html. The directive can receive either a string, that will undergo a partial sanitization if no modifier is present, or an array of two elements, the first being a sanitize-html allowlist (know more here) and the second being the string to be sanitized.

<div v-sanitize="unsafe_html"></div>

Warning

The validation and sanitization of user-provided input should be performed on the back-end, before storing it on the database. You should resort to client-side input sanitization only if you don't control the back-end, e.g., consuming content from an external API.

Setup

Start getting it with NPM or Yarn (see package).

npm install vue-sanitize-directive

Then install it like any other Vue plugin. This will provide the v-sanitize directive globally.

import VueSanitize from 'vue-sanitize-directive'

// Vue 2.x
Vue.use(VueSanitize)

// Vue 3.x
app.use(VueSanitize)

Usage (demos)

Strip all tags (.strip modifier)

Removes all HTML tags, keeping just the text content.

<span v-sanitize.strip="unsafe_html"></span>

Remove unsafe tags (default/ .basic modifier)

Allows some HTML tags, but remove unsafe content, like <script/> and <iframe/> tags.

<span v-sanitize.basic="unsafe_html"></span> = <span v-sanitize="unsafe_html"></span>

Keep inline styles (.inline modifier)

Removes most tags, keeping only inline formatting and <br/> tags.

<span v-sanitize.inline="unsafe_html"></span>

Allow all tags (.nothing modifier)

Allows all HTML tags, not performing sanitization. For all effects, it's a replacement for v-html.

<span v-sanitize.nothing="unsafe_html"></span>

Related Packages

v-sanitize

Whitelist-based HTML sanitizer for Vue.js apps.

70,607 15
@nanogiants/vue3-sanitize-html

This package contains a Vue 3 directive which adds v-sanitize-html to an element...

12,296 2
vue-safe-html

A Vue directive which renders sanitised HTML dynamically

744,496 33
vue-sanitize

HTML sanitizer plugin for Vue 3, powered by sanitize-html.

320,794 35
@radya/nuxt-dompurify

A Nuxt 3 module that integrates DOMPurify for sanitizing HTML content and protec...

28,438 8

Version History

Version Released License
0.2.1 MIT
0.2.0 MIT
0.1.0 ISC