name: 错敏信息检测 description: 通过调用 UCAP 平台的安全防护接口,快速识别文本内容中的敏感数据。
这是一个用于检测文本敏感信息的 Skill,通过调用 UCAP 平台的安全防护接口,快速识别文本内容中的敏感数据,适用于内容审核、数据合规等场景。
本技能支持从 URL 获取网页内容进行检测。
⚠️ 重要安全配置说明
URL 抓取(静态模式 · 默认):
- 默认使用静态模式:安全可靠,无需浏览器依赖
- 使用 requests 抓取静态 HTML
⚠️ 动态模式需要显式启用:
- 设置
DISABLE_JAVASCRIPT = False可开启动态模式- 必须配置
ALLOWED_DOMAINS白名单,否则动态模式直接拒绝访问- 页面 JS 可能发起内网请求(SSRF 风险),白名单是唯一防护手段
userKey 存储:
- 仅保存在当前进程环境变量,不持久化到磁盘
- 如需长期使用,请在系统中配置持久化的
UCAP_USERKEY环境变量
防护层次说明协议校验默认仅允许 HTTPS,拒绝 http / ftp / file 等协议主机名预检拒绝直接以私有 IP 写入的 URLDNS 解析后 IP 检查对域名进行 DNS 解析,检查所有 IP 是否为私有/保留网段云元数据屏蔽屏蔽 169.254.169.254、metadata.google.internal 等云平台元数据地址重定向后校验对页面最终落地 URL 重新执行完整安全检查
动态模式( DISABLE_JAVASCRIPT = False)需要同时满足两个条件才能使用:
DISABLE_JAVASCRIPT = FalseALLOWED_DOMAINS 白名单:未配置则动态模式直接拒绝访问不配置白名单的风险:
风险说明页面 JS 内网请求恶意网页可能包含 fetch("http://192.168.1.1/admin") 等代码SSRF 绕过虽然目标 URL 安全检查通过,但 JS 可能发起其他内网请求
动态模式安全配置示例:
python
DISABLE_JAVASCRIPT = False # ⚠️ 需要显式启用
ALLOWED_DOMAINS = [
"news.example.com",
"blog.trusted-site.cn",
"*.github.io",
]
网段说明10.0.0.0/8RFC1918 私有地址172.16.0.0/12RFC1918 私有地址192.168.0.0/16RFC1918 私有地址127.0.0.0/8Loopback169.254.0.0/16Link-local / AWS 元数据100.64.0.0/10RFC6598 共享地址0.0.0.0/8 、240.0.0.0/4 等保留地址::1/128、fc00::/7、fe80::/10IPv6 私有/链路本地
⚠️ 动态模式必须配置白名单,静态模式无需配置
python
# 动态模式:必须配置白名单(否则无法使用动态模式)
DISABLE_JAVASCRIPT = False
ALLOWED_DOMAINS = [
"example.com",
"*.trusted-domain.com",
]
# 静态模式(默认):无需配置,保持 ALLOWED_DOMAINS = [] 即可
# 注意:智能模式(DISABLE_JAVASCRIPT=False)在静态模式失败时,
# 如果未配置白名单,将不会切换到动态模式,而是返回错误
python
# 默认 True:仅使用静态模式
# - 始终使用 requests 抓取静态 HTML
# - 安全高效,无需浏览器依赖
# - 适合大多数网页内容抓取
DISABLE_JAVASCRIPT = True
# 设为 False:智能模式
# - 先尝试静态模式(requests),安全高效
# - 静态抓取失败或内容为空时,自动切换动态模式(agent-browser)
# - ⚠️ 动态模式需要配置 ALLOWED_DOMAINS 白名单!
DISABLE_JAVASCRIPT = False
技术用途Python 3.8+主要开发语言requestsHTTP 请求库(静态模式 / API 调用)beautifulsoup4HTML 解析(静态模式下提取标题)dnspythonDNS 解析(SSRF 防护)
bash
pip install -r requirements.txt
或单独安装:
bash
pip install requests>=2.31.0
pip install dnspython>=2.4.0
pip install beautifulsoup4>=4.12.0
如需启用动态模式( DISABLE_JAVASCRIPT = False),还需安装:
依赖安装命令说明Node.js-agent-browser 运行的基础环境agent-browsernpm install -g agent-browser命令行浏览器控制工具Chrome/Firefox-agent-browser 自动控制,需提前安装
⚠️ 注意:动态模式需要额外的系统依赖(Node.js + agent-browser + Chrome),且必须配置 ALLOWED_DOMAINS 白名单。
text
请帮我检测这段文本是否包含敏感信息:{待检测文本内容}
或从 URL 检测:
text
请帮我检测这个网页的内容:https://example.com
userKey 为可选参数:
配置方式体验限制说明不传入 userKey体验用户,每周 10 次 调用无需注册传入 userKey无调用限制需前往 UCAP 平台申请
⚠️ userKey 存储说明:
UCAP_USERKEY 环境变量text
# 示例 1:体验使用(无需密钥,每周 10 次)
请帮我检测这段文本是否包含敏感信息:{待检测文本}
# 示例 2:传入 userKey(解除调用限制)
请帮我检测并设置密钥:您的userKey
如需更换密钥,重新传入新的 userKey 即可覆盖。
参数名类型必传说明contentstring是待检测的文本内容 或 URLuserKeystring否UCAP 平台用户密钥(可选,不传则为体验用户;仅保存在当前进程)sensitive_code_listarray否检测类型列表,不传则检测所有类型
json
{
"code": 0,
"message": "检测成功",
"data": {
// UCAP 接口返回的检测结果
},
"source_url": "https://example.com",
"source_type": "url"
}
错误码说明0检测成功-1待检测文本不能为空
错误码说明-3接口调用超时(15秒)-4接口返回错误-5网络连接失败-6接口调用失败-7接口返回非 JSON 格式数据-8SSL 证书验证失败
错误码说明-100URL 安全检查失败(私有 IP / DNS 重绑定 / 非白名单域名 / 重定向后不安全 / 动态模式未配置白名单)-101访问超时-103agent-browser 错误(仅动态模式,需要确保已安装)-104访问失败(其他错误)
python
from main import check_sensitive, fetch_url_content, run, validate_url_security
# 安全校验(不实际抓取)
ok, msg = validate_url_security("https://example.com")
print(ok, msg)
# URL 抓取(静态模式,默认行为)
result = fetch_url_content("https://example.com")
# 传入 userKey(解除体验限制)
result = check_sensitive(
content="这是一段待检测的文本内容",
userKey="your_user_key_here"
)
# 自动识别 URL 或文本
result = run({
"content": "这是一段待检测的文本内容",
"userKey": "your_user_key_here"
})
DISABLE_JAVASCRIPT = False 并配置 ALLOWED_DOMAINS 白名单访问 https://safeguard.ucap.com.cn/ 申请专属 userKey