资讯动态

repo-supervisor支持扫描哪些文件?JSON/JS/YAML分词器机制详解

发布时间:2026/8/20 17:02:11 来源:尧图企业网站定制
repo-supervisor支持扫描哪些文件JSON/JS/YAML分词器机制详解【免费下载链接】repo-supervisorScan your code for security misconfiguration, search for passwords and secrets. :mag:项目地址: https://gitcode.com/gh_mirrors/re/repo-supervisorrepo-supervisor 是一款专注于代码安全扫描的开源工具核心能力是扫描代码中的安全配置错误、搜索密码和密钥等敏感信息。本文围绕repo-supervisor 支持扫描哪些文件这个核心问题详解 JSON、JS、YAML 三类文件的扫描范围以及背后分词器Tokenizer的工作机制帮助新手快速理解敏感信息是如何被发现的。repo-supervisor能扫描哪些文件类型repo-supervisor 的扫描范围非常明确在配置文件 config/main.json 的allowedExtensions中定义了 4 种受支持的文件扩展名扩展名用途分词器.jsJavaScript 源码tokenizer/js.json配置文件、数据文件tokenizer/json.yamlYAML 配置tokenizer/yaml.ymlYAML 配置别名tokenizer/yaml同时默认会排除^test开头的测试目录CLI 模式下还会排除.git目录避免对测试代码产生误报。文件类型与分词器的映射关系定义在 config/filters.json 中每种扩展名对应唯一的 parser 模块。JSON文件扫描原理键值对全面提取JSON 文件是密码和密钥的高发区比如aws_access_key、api_secret等字段。repo-supervisor 的 JSON 分词器src/parser/tokenizer/json/index.js会先通过JSON.parse解析整个文件然后递归遍历对象同时提取键名和键值供后续熵值检测分析。默认配置开启了checkObjectKeys和checkObjectValues意味着字段名和字段值都会被检查最大递归深度为 10 层。这意味着嵌套再深的敏感配置也逃不过扫描。JS文件扫描原理AST分词提取字符串JavaScript 源码的扫描要复杂得多因为代码中充满了变量名、注释、字符串字面量。repo-supervisor 的 JS 分词器src/parser/tokenizer/js/index.js借助acorn解析器对代码做词法分析只提取类型为string的字符串字面量即引号包裹的内容并用uniq去重后再交给过滤器检测。采用 AST抽象语法树分词的好处很明显代码中的硬编码密码、内嵌的 access token、URL 中的认证信息都能被精准提取同时避免把变量名、关键字误当成敏感信息。YAML文件扫描原理递归遍历所有值YAML 因其可读性常被用作 Kubernetes 部署清单、CI/CD 配置和各类服务配置文件而这些文件中经常藏着服务账号密码。YAML 分词器src/parser/tokenizer/yaml/index.js使用js-yaml的safeLoad将内容解析为对象再通过递归函数把所有叶子节点的值转为字符串数组递归深度上限为 50 层足够覆盖绝大多数真实配置。分词器机制如何配合熵值检测发现密码分词器只是第一道工序它的任务是把文件内容拆解成字符串列表真正的判断逻辑由 src/filters/entropy.meter/index.js 完成——通过计算字符串的信息熵来判断其是否像随机生成的密码或密钥。在正式计算熵值前还有一组预处理过滤器负责去噪dictionary.words.js 过滤常见英文单词、email.addresses.js 过滤邮箱地址、local.paths.js 过滤本地路径、whitelist.js 过滤白名单内容等从而大幅降低误报率。如何配置扫描规则与排除路径如果你想调整扫描范围只需修改 config/main.json增加受支持的文件类型在allowedExtensions中加入新扩展名排除敏感目录修改excludedPaths数组例如把^test改为^(test|docs)$关闭 CI 状态更新将updateGithubStatus设为false。总结三种分词器各司其职repo-supervisor 之所以能同时高效处理 JS、JSON、YAML 文件正是因为它为每种格式定制了专用的分词器JS 用 AST 提取字符串、JSON 递归提取键值对、YAML 递归提取叶子值最终统一交给熵值检测过滤器判断。理解了这套分词器 过滤器的流水线机制你就能清楚知道 repo-supervisor 支持扫描哪些文件以及敏感信息是如何被一步步揪出来的。如果你正准备为项目引入密钥扫描工具不妨直接 clone 仓库https://gitcode.com/gh_mirrors/re/repo-supervisor体验完整的扫描报告能力让密码和密钥不再裸奔在代码中。【免费下载链接】repo-supervisorScan your code for security misconfiguration, search for passwords and secrets. :mag:项目地址: https://gitcode.com/gh_mirrors/re/repo-supervisor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价