1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! HTML/XSS 净化工具(按需,仅当后端返回用户富文本时需要)
//!
//! # 使用示例
//!
//! ```ignore
//! use alun_utils::xss;
//!
//! let safe = xss::sanitize_html("<script>alert(1)</script><p>Hello</p>");
//! assert_eq!(safe, "<p>Hello</p>");
//! ```
use Builder;
/// 使用默认规则净化 HTML
///
/// 移除 `<script>`、`<style>`、事件属性(`onclick` 等)、
/// javascript: URL 等危险内容,只保留安全标签和属性。
///
/// # 默认允许的标签
///
/// - 文本格式:`b`, `i`, `em`, `strong`, `u`, `s`, `code`, `pre`, `blockquote`
/// - 段落:`p`, `br`, `hr`
/// - 标题:`h1` ~ `h6`
/// - 链接:`a`(仅 `href`, `title`, `target` 属性)
/// - 列表:`ul`, `ol`, `li`
/// - 表格:`table`, `thead`, `tbody`, `tr`, `th`, `td`
/// - 图片:`img`(仅 `src`, `alt`, `width`, `height`)
/// - 容器:`div`, `span`
/// 使用严格规则净化 HTML(仅保留基本文本格式标签)
/// 检查 HTML 中是否包含潜在 XSS 载荷
///
/// 返回 `true` 表示可能包含恶意内容(需要净化处理)。