模板注入

  • 当直接将用户输入的字符串变量解析到浏览器上时,会有模板注入风险
        document.write(`<script>alert("")<\/script>`)

由标签模板进行字符串替换,避免模板注入

 function safeHtml(data, v1) {
            console.log(arguments)
            let s = data[0];
            for (let i = 1; i < arguments.length; i++) {
                let arg = arguments[i]
                s += arg.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
                s += data[i]
            }
            return s
        }
        document.write(safeHtml`<script>alert("")<\/script>`)
posted @ 2021-02-24 17:12  abcdefgab  阅读(110)  评论(0)    收藏  举报