用于简单的防 XSS 攻击场景。
对 HTML 的关键字符进行转义。
关键字符 | 实体名称 | 十六进制编码 |
---|---|---|
& | & | / |
< | < | / |
> | > | / |
' | ' | ' |
" | " | / |
IE 低版本对 ``` 的实体名称存在兼容性问题,因此改用对应的十六进制编码。
function htmlEscape(str) {
if (typeof str != "string") return str;
if (str.length === 0) return str;
str = str.replace(/&/gm, "&");
str = str.replace(/</gm, "<");
str = str.replace(/>/gm, ">");
str = str.replace(/"/gm, """);
str = str.replace(/'/gm, "'");
return str;
}
这个 demo 主要用于练习和验证使用,对于安全性要求比较高的项目,还是建议使用专业的防 XSS 过滤库。
推荐的防XSS攻击库有: