未安全加密链接指未启用HTTPS、未校验来源或未加访问控制的外链资源;识别需结合协议/头/上下文特征与局部常量(如站点主域、CDN白名单、敏感路径等)进行规则匹配和动态过滤。

在多图文混合排版的后端处理引擎中,“未安全加密的链接”并不是指链接本身被加密,而是指那些未启用 HTTPS、未校验来源、未做传输层保护或未加访问控制的外链资源(如图片、脚本、iframe、下载地址等)。这类链接容易被劫持、注入或盗用,属于内容安全风险点。识别它们不能靠“解密”,而要靠规则匹配 + 协议/头/上下文特征分析。
识别未安全加密链接的核心依据
所谓“局部常量”,是指引擎运行时可稳定获取、不随请求动态变化的基础参数,比如:
- 当前站点主域(
config.site_host) - 白名单 CDN 域名列表(
config.cdn_whitelist = ["cdn.example.com", "imgs.yourapp.net"]) - 强制 HTTPS 的协议策略开关(
config.force_https = true) - 已知敏感路径前缀(
config.sensitive_paths = ["/api/", "/admin/", "/download/"])
用局部常量构建动态过滤逻辑
以 Node.js(Express)或 Python(FastAPI)为例,可在解析 HTML/Markdown 后的 DOM 树或 AST 阶段执行清洗:
- 提取所有
a、img、script、iframe、link元素的href或src属性值 - 对每个链接 URL 做标准化:补全协议、解析 host、path、query
- 逐条比对是否满足任一“不安全”条件:
- 协议为
http://且非本地回环(127.0.0.1、localhost) - host 不在
cdn_whitelist中,且不是site_host - path 匹配
sensitive_paths但未携带有效 token 参数(如无?t=xxx或&sig=) - URL 含有裸 base64 或简单编码(如
data:text/plain;base64)且未标记为可信上下文
- 协议为
实际清洗建议(非替换,先标记再处置)
不要直接删除链接,而是统一打标,便于后续审计或降级处理:
- 添加
data-security="unsafe"属性 - 重写
src/href为代理中转地址(如/proxy?url=xxx),由网关统一鉴权和协议升级 - 对高危链接(如指向
javascript:或vbscript:)直接置空并记录告警日志
注意避开常见误判
以下情况虽协议为 HTTP,但未必“不安全”,需结合局部常量豁免:
- 内网服务调用(host 属于
config.internal_hosts = ["10.0.1.*", "192.168.0.0/16"]) - 测试环境专用资源(
config.env === "staging"且 host 在staging_whitelist中) - 已通过签名验证的短链(如
https://l.your.app/abc?_s=sha256_xxx,签名密钥为局部常量)

















