Class XssHolder
java.lang.Object
tech.riemann.nif.web.xss.utils.XssHolder
XSS清理配置持有者
用于在当前线程中存储和获取XSS清理的配置信息
使用ThreadLocal存储XssClean对象,确保线程安全
主要功能: 1. 检查是否忽略输入XSS检查 2. 检查是否忽略输出XSS检查 3. 检查指定名称是否需要XSS检查 4. 设置和清除XSS清理配置
- Author:
- Kerbores(kerbores@riemann.tech)
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
XssHolder
public XssHolder()
-
-
Method Details
-
inRequest
public static boolean inRequest()当前线程是否处于一次 HTTP 请求处理上下文中XssHolder 仅在 XssInterceptor.preHandle 中 set、afterCompletion 中 remove, 因此 TL 非空即代表当前线程正在处理一个 HTTP 请求。 XSS 检测/转义应仅在该上下文内生效,避免污染 Actuator、JMX、定时任务、内部反序列化 (如 Actuator endpoint 元数据反序列化)产生的海量误报日志
- Returns:
- true 表示处于 HTTP 请求上下文中
-
inputIgnore
public static boolean inputIgnore()检查是否忽略输入XSS检查- Returns:
- 如果忽略输入XSS检查返回true,否则返回false
-
outputIgnore
public static boolean outputIgnore()检查是否忽略输出XSS检查- Returns:
- 如果忽略输出XSS检查返回true,否则返回false
-
hasName
检查指定名称是否需要XSS检查如果names数组为空,则所有名称都需要检查 否则,只有在names数组中的名称才需要检查
- Parameters:
name- 要检查的名称- Returns:
- 如果需要检查返回true,否则返回false
-
names
-
set
设置XSS清理配置P3: 参数名由 input/output 改为 inputSkip/outputSkip——原命名易误读为"是否检查输入", 实际语义是"是否忽略(跳过)输入/输出XSS检查"
- Parameters:
inputSkip- 是否忽略(跳过)输入XSS检查outputSkip- 是否忽略(跳过)输出XSS检查names- 需要XSS检查的名称列表
-
remove
public static void remove()清除当前线程的XSS清理配置
-