命令行参数
| 参数 | 描述 | 使用示例 |
|---|---|---|
config |
指定配置文件路径 | -config config.json |
path |
指定检测项目路径, 支持 http(s)/ftp/file 协议 | -path ./foo |
out |
根据后缀生成报告 | -out out.json,out.html |
log |
指定日志文件路径 | -log my_log.txt |
token |
云端服务token |
-token xxx |
proj |
saas项目token |
-proj xxx |
version |
显示版本信息 | -version |
help |
显示帮助信息 | -help |
配置文件说明
配置文件使用 json 格式,支持以下字段:
默认会从目标检测路径中查找配置文件, 否则使用默认配置文件。 可通过
-config参数指定配置文件路径。
path:String检测目标路径, 支持 http(s)/ftp/file 协议out:String报告输出路径, 通过后缀名识别文件类型, 支持 html/json/xml/csv/sqlite/cdx/spdx/swid/dsdxoptional:Object可选配置项ui:Boolean是否启用交互式界面, 默认为falsededup:Boolean是否启用组件去重(相同组件仅保留一条记录,组件路径合并), 默认为falsedir:Boolean是否仅检测目录(跳过压缩包), 默认为falsevuln:Boolean是否仅保留漏洞组件, 默认为falseprogress:Boolean是否显示进度条, 默认为truedev:Boolean是否保留开发组件, 默认为truetls:Boolean开启 TLS 证书验证, 默认为falseproxy:String代理地址, 默认为空ignore:Array<String>扫描时忽略的路径规则, 默认为空。仅读取当前配置文件中的规则, 不会自动读取项目.gitignore; 规则语法兼容常用.gitignore写法, 包括目录匹配、通配符和!反选
repo:Object组件仓库配置maven:Arraymaven 镜像/私服仓库配置url:String仓库地址user:String用户名pass:String密码
npm:Arraynpm 镜像/私服仓库配置url:String仓库地址user:String用户名pass:String密码
composer:Arraycomposer 镜像/私服仓库配置url:String仓库地址user:String用户名pass:String密码
origin:Object漏洞数据源配置url:String漏洞数据源地址token:String云端漏洞数据库个人访问令牌proj:String项目访问令牌, 若置空则同步结果至"快速检测", 若无此字段(注释或删除)则不将结果同步至 OpenSCA SaaSjson:StringJSON 格式漏洞数据库路径mysql:ObjectMySQL 数据库漏洞数据源配置dsn:String数据库连接字符串table:String数据表名
sqlite:ObjectSQLite 数据库漏洞数据源配置dsn:String数据库连接字符串table:String数据表名
忽略路径配置示例
如需跳过测试依赖、临时目录或特定压缩包, 可在 optional.ignore 中配置忽略规则:
{
"optional": {
"ignore": [
"JarCollection/",
"*.jar",
"!libs/keep.jar"
]
}
}
上例会跳过 JarCollection/ 目录及所有 .jar 文件, 但保留 libs/keep.jar。该配置只影响 OpenSCA 扫描过程, 不会修改项目文件。
漏洞数据库配置示例
{
// ...
"origin": {
// json 文件
"json": "vuln-db.json",
// MySQL
"mysql": {
// user:password@tcp(ip:port)/dbname
"dns": "opensca:opensca@tcp(3306:127.0.0.1)/opensca",
"table": "vuln"
}
"sqlite": {
"dns": "vuln.db",
"table": "vuln"
}
}
}
漏洞数据库字段说明
| 字段 | 描述 | 是否必填 |
|---|---|---|
vendor |
组件厂商 | 否 |
product |
组件名 | 是 |
version |
漏洞影响版本 | 是 |
language |
组件语言 | 是 |
name |
漏洞名 | 否 |
id |
自定义编号 | 是 |
cve_id |
cve 编号 | 否 |
cnnvd_id |
cnnvd 编号 | 否 |
cnvd_id |
cnvd 编号 | 否 |
cwe_id |
cwe 编号 | 否 |
description |
漏洞描述 | 否 |
description_en |
漏洞英文描述 | 否 |
suggestion |
漏洞修复建议 | 否 |
attack_type |
攻击方式 | 否 |
release_date |
漏洞发布日期 | 否 |
security_level_id |
漏洞风险评级 | 否 |
exploit_level_id |
漏洞利用评级 | 否 |
language可选值:javajavascriptgolangrustphprubypythonversion描述可使用以下格式:符号 描述 ( x为检出的组件版本)[a,b]a<=x<=b(a,b)a<x<b[a,b)a<=x<b(a,b]a<x<=b(0,b)x<b(a,)x>a{a,b,c,...}x=a或x=b或x=c或...同时位于多个范围需要用
||连接,例如:[a,b)||(b,c]代表a<=x<b或b<x<=c,即a<=x<=c且x!=b也可以区间和集合混用:
(0,b)||{c,d}||[e,)代表x<b或x=c或x=d或x>=esecurity_level_id可选值:1234, 分别对应严重、高危、中危、低危exploit_level_id可选值0:不可利用1:可利用