防范措施
我们可以自行封装防范方法,根据项目需求定制标准;也可以借助成熟工具库,更便捷高效。以下整理了几种常用方案的用法。
1. layui util
Layui 的 util.escape() 是核心的 XSS 防护手段,它会将 HTML 中的特殊字符转换为对应的实体,阻止浏览器解析执行恶意脚本,从根源上拦截大部分反射型和存储型攻击。
核心转义的特殊字符
该方法针对 HTML 中最具危险性的字符进行转义,规则如下:
| 原始字符 | 转义后 | 说明 |
|---|---|---|
< | < | 标签开始标识 |
> | > | 标签结束标识 |
" | " | 属性值包裹 |
' | ' | 属性值包裹 |
& | & | 实体起始标识 |
这些字符常被用于注入脚本(如 <script>alert('XSS')</script>),转义后变为纯文本,无法执行。
示例
layui.use('util', function(){
var util = layui.util;
// 模拟用户输入的恶意内容
var maliciousContent = '<script>alert("XSS 攻击");</script><a href="javascript:evil()">恶意链接</a>';
// 转义处理
var safeContent = util.escape(maliciousContent);
console.log(safeContent);
// 插入页面时仅显示文本
document.getElementById('content').innerText = safeContent;
});
2. js-xss 库
js-xss 能过滤 HTML 字符串、移除危险标签或属性,确保输出的 HTML 安全可渲染。
安装
Node.js 环境

