| pageClass | rule-details |
|---|---|
| sidebarDepth | 0 |
| title | vue/no-v-html |
| description | disallow use of v-html to prevent XSS attack |
| since | v4.7.0 |
disallow use of v-html to prevent XSS attack
- ⚙️ This rule is included in all of
"plugin:vue/recommended",*.configs["flat/recommended"],"plugin:vue/vue2-recommended"and*.configs["flat/vue2-recommended"].
This rule reports all uses of v-html directive in order to reduce the risk of injecting potentially unsafe / unescaped html into the browser leading to Cross-Site Scripting (XSS) attacks.
<template>
<!-- ✓ GOOD -->
<div>{{ someHTML }}</div>
<!-- ✗ BAD -->
<div v-html="someHTML"></div>
</template>{
"vue/no-v-html": ["error", {
"ignorePattern": "^html"
}]
}ignorePattern... disables reporting when thev-htmldirective references a variable matching this pattern. By default, allv-htmluses are forbidden.
<template>
<!-- ✓ GOOD -->
<h2>{{ userName }}</h2>
<span v-html="htmlUserLink" />
<!-- ✗ BAD -->
<span v-html="userName" />
</template>If you are certain the content passed to v-html is sanitized HTML you can disable this rule.
This rule was introduced in eslint-plugin-vue v4.7.0