【vue】v-html

richest_qi發表於2020-08-09

v-html,會更新元素的innerHTML屬性。

<template>
    <p v-html="htmlFragment"></p>
</template>

<script>
const data = {
    htmlFragment:"<span style='color:red'>hello world</span>"
}
export default {
    data(){
        return data;
    }
}
</script>

在這裡插入圖片描述
但是,v-html是一個危險分子,非常容易引入XSS攻擊
跨站指令碼攻擊,全稱cross site scripting,縮寫本應是CSS,為了和層疊樣式表(CSScascading style sheet)區分開,所以就改叫XSS了。
攻擊者向有XSS漏洞的網站輸入惡意HTML程式碼,當使用者訪問網站時,這段惡意程式碼就會執行,從而達到攻擊的目的。

看個例子。

<template>
    <p v-html="htmlFragment"></p>
</template>

<script>
const data = {
    htmlFragment:'hello world<img src=x οnerrοr=alert("attacking!") />'
}
export default {
    data(){
        return data;
    }
}
</script>

在這裡插入圖片描述

相關文章