如何系统防御XSS并正确理解输出编码、富文本净化与CSP的分工?
简答题中等969 次浏览
参考答案与解析
# 核心结论
系统防御 XSS 的关键,是保证不可信数据不会在浏览器中被解释为可执行代码,而不是删除少量危险字符串。工程上应以按输出上下文编码和安全渲染接口为基础;业务确需展示富文本时,使用成熟净化器实施允许列表;再以内容安全策略 CSP、可信类型 Trusted Types、权限收敛和监测作为纵深防御。输出编码、富文本净化与 CSP 分工不同:编码适合把数据作为纯文本展示,净化用于保留有限的标记能力,CSP 用于限制遗漏注入点最终可以执行或加载的资源,三者不能相互替代。
# 底层机制
浏览器会根据数据所处位置调用不同解析器,因此不存在覆盖所有位置的万能转义函数。普通文本节点应执行 HTML 实
