Skip to content

黑名单构建器

🚫 SDK 配置目标黑名单。

选项

选项说明
WithBlacklist(patterns...)自定义规则
WithDefaultBlacklist()启用内置默认规则
WithBlacklistFile(path)规则文件
WithNoBlacklist()禁用黑名单

示例

go
// 默认 + 自定义
opts := sdk.NewScreenshotOptions(
    sdk.WithDefaultBlacklist(),
    sdk.WithBlacklist("internal.local", "10.0.0.0/8"),
)

// 规则文件
opts := sdk.NewScreenshotOptions(
    sdk.WithDefaultBlacklist(),
    sdk.WithBlacklistFile("blocklist.txt"),
)

// 禁用(仅受控内网)
opts := sdk.NewScreenshotOptions(
    sdk.WithNoBlacklist(),
)

规则语法

支持 CIDR(10.0.0.0/8)、正则(.*:6379)、字面量(localhost)。默认规则屏蔽内网与云元数据,见 黑名单 CLI

URL 在进入浏览器前需通过黑名单关卡:

安全

SSRF 防护底线

  • ✅ 生产环境保留默认黑名单WithDefaultBlacklist())防 SSRF
  • ✅ 对外部输入的目标先过黑名单再采集
  • ⚠️ 仅在授权内网扫描时才 WithNoBlacklist()
  • ❌ SDK 接收外部 URL 的场景(如自建 API),黑名单更是必需——否则用户传个 169.254.169.254 就能打云元数据

构建与应用时序

黑名单从配置到生效分三步——构建规则集、合并到 Options、进入浏览器前检查:

WithNoBlacklist() 等价于跳过 rejectBlacklistedTarget 这一步,关卡关闭。

下一步

基于 MIT 许可发布