使用 XSS 评估我的转义函数的安全性

问题描述 投票:0回答:1

我制作了一个 javascript 函数,它接受一个输入并将其转义,返回一个带有文本的 div 字符串作为示例。这个转义函数是否容易受到 XSS 攻击,如果是,问题是什么?

function escape(s) {
    s = s.toString()
    if (s.length > 100) { throw new Error("Too long!") }
    s = s.replace(/./g, function(x) {
        return { '<': '&lt;', '>': '&gt;', '&': '&amp'}[x] || x;       
    });
    if (s.match("prompt") || s.match("alert")) { throw new Error("XSS caught") }
    return "<div>"+s+"</div>"
}

没有错误,我只想知道我的函数是否存在漏洞

javascript xss
1个回答
1
投票

我可以确定一些问题。您应该尝试阻止其他字符,例如双引号、单引号和反引号。检查字符串长度是一种很好的做法,但您仍然可以制作长度较短的恶意代码。最后,您正在检查他们是否使用“提示”或“警报”。可以混淆代码来传递这个。

© www.soinside.com 2019 - 2024. All rights reserved.