技能标识:prepublish-privacy-scrub
Scan and remove sensitive data before publishing skills. Detect API keys, tokens, secrets, and personal info.
在发布前扫描敏感数据。
发布时意外暴露:
powershell
function Test-PrivacyScan {
param([string]$path)
$sensitivePatterns = @(
apiKey\s[=:]\s[\]?[A-Za-z0-9],
token\s[=:]\s[\]?[A-Za-z0-9]{10,},
secret\s[=:]\s[\]?[A-Za-z0-9],
password\s[=:]\s[\]?.+,
Bearer\s+[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+,
sk-[A-Za-z0-9]{32,},
OPENCLAW_\w+\s[=:]\s\S+,
https://\S+\.ngrok\S+,
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
)
$files = Get-ChildItem $path -Recurse -File |
Where-Object { $_.Extension -in @(.md, .ps1, .json, .txt) }
$findings = @()
foreach ($file in $files) {
$content = Get-Content $file.FullName -Raw
foreach ($pattern in $sensitivePatterns) {
$matches = [regex]::Matches($content, $pattern, IgnoreCase)
foreach ($m in $matches) {
$findings += @{
File = $file.FullName
Pattern = $pattern
Match = $m.Value.Substring(0, [Math]::Min(20, $m.Value.Length)) + ...
}
}
}
}
return $findings
}
powershell
function Invoke-PrivacyScrub {
param([string]$path)
$replacements = @{
apiKey\s[=:]\s[\]?[^\s]+ = apiKey: 已编辑
token\s[=:]\s[\]?[^\s]+ = token: 已编辑
secret\s[=:]\s[\]?[^\s]+ = secret: 已编辑
}
$files = Get-ChildItem $path -Recurse -File
foreach ($file in $files) {
$content = Get-Content $file.FullName -Raw
$modified = $false
foreach ($kv in $replacements.GetEnumerator()) {
if ($content -match $kv.Key) {
$content = $content -replace $kv.Key, $kv.Value
$modified = $true
}
}
if ($modified) {
$content | Out-File $file.FullName -Encoding UTF8
Write-Host 已擦除: $($file.Name)
}
}
}
markdown
扫描命令:
powershell
Test-PrivacyScan -path ./skill-folder
| 标准 | 验证 |
|---|---|
| 已执行扫描 | Test-PrivacyScan返回结果 |
| 无严重发现 |
在以下情况使用:
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 prepublish-privacy-scrub-1776286779 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 prepublish-privacy-scrub-1776286779 技能
skillhub install prepublish-privacy-scrub-1776286779
文件大小: 2.05 KB | 发布时间: 2026-4-16 16:28