Documentation
¶
Overview ¶
Package security 提供独立的安全原语:
- DownloadToken: 取件下载令牌(时间窗 HMAC + 恒时比较)
- SSRF: 存储端点 URL 校验(scheme 白名单 + 私网地址策略)
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrDownloadToken = errors.New("下载令牌无效或已过期,请重新获取取件信息")
ErrDownloadToken 无效或过期的下载令牌
View Source
var ErrEndpointURL = fmt.Errorf("存储端点 URL 不合法")
ErrEndpointURL 存储端点 URL 不合法
Functions ¶
func GenerateDownloadToken ¶
GenerateDownloadToken 生成下载令牌 "exp.sig"。 空密钥(未注入)时返回空串——调用方按"功能未启用"处理。
func SetDownloadTokenSecret ¶
func SetDownloadTokenSecret(secret string)
SetDownloadTokenSecret 注入下载令牌签名密钥(应与 jwt_secret 等强的独立随机值)。
func ValidateEndpointHost ¶
ValidateEndpointHost 校验裸主机端点(FTP/SFTP 的 host 字段:host[:port], 无 scheme 不适用 URL 解析)。策略与 ValidateEndpointURL 一致:IP 字面量直接 判私网;域名解析后逐 IP 复判;allow_private_networks 开启时全放行。
func ValidateEndpointURL ¶
ValidateEndpointURL 校验 s3/webdav 存储端点 URL:
- 仅允许 http/https scheme
- 必须携带 host
- DNS 解析后逐 IP 复判私网策略(防重绑定攻击:解析结果非配置期望网段时拒绝)
allowPrivate 未配置(默认 false)时拒绝环回/私网/链路本地地址。 局域网 MinIO/WebDAV(飞牛 NAS)部署需显式 security.ssrf.allow_private_networks=true。
func VerifyDownloadToken ¶
VerifyDownloadToken 恒时比较校验令牌(exp 窗口 + HMAC 签名)。
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.