Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
DakshSCRA — 框架感知的静态代码分析工具,用于自动化源代码审查,支持平台特定规则、污点分析、工作量估算和抑制基线。 | Kitploit
工具/GitHubGitHub/coffeeandsecurity/dakshscra
静态分析漏洞扫描器静态代码分析 (SAST)漏洞分析代码分析Web安全渗透测试DevSecOps移动安全学习与教育
GitHubcoffeeandsecurity/dakshscra

DakshSCRA

框架感知的静态代码分析工具,用于自动化源代码审查,支持平台特定规则、污点分析、工作量估算和抑制基线。

4579016天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

Daksh SCRA(源代码审查辅助工具)```

Author:

  • Debasis Mohanty ([email protected])
  • Twitter / X: @coffeensecurity
  • www.coffeeandsecurity.com
root@kitploit:~
## 关于 Daksh SCRA

Daksh SCRA(源代码审查辅助工具)旨在提升源代码审查流程的效率,为代码审查人员提供一种结构清晰、组织有序的方法。

Daksh SCRA 不会不加区分地将所有内容标记为潜在问题,而是倡导深思熟虑的分析,鼓励对潜在问题进行深入调查和确认。这种方法减少了将每个潜在问题都标记为缺陷的慌乱,从而避免了误报带来的混乱和浪费时间。

### 首次亮相

Daksh SCRA 最初在 Black Hat USA 2022(8 月 6 日至 9 日)的一次源代码审查培训课程中推出,当时面向特定受众进行了低调展示。其正式公开亮相是在拉斯维加斯举行的 Black Hat USA 2023 上。

## 功能与特性

- **识别源代码中的关注区域:** 鼓励有针对性的调查和确认,而不是不加区分地将所有内容标记为缺陷。
- **识别文件路径中的关注区域(全球首创):** 识别文件路径中的模式,以定位需要审查的相关部分。
- **软件级侦察以识别所用技术:** 识别项目技术,使代码审查人员能够使用适当的规则进行精准扫描。
- **代码审查的自动化科学工作量估算(全球首创):** 提供一种可衡量的方法来估算代码审查所需的工作量。
- **框架感知扫描:** 当检测到项目框架时,自动应用框架特定的规则。
- **污点分析报告:** 按平台生成的 HTML 污点流报告,提供黑客模式和专家模式两种主题。
- **RDL(规则描述语言):** 通过 `rdl_ref` 引用的外部规则逻辑,由 `core/rdl_engine.py` 管道执行——支持文件感知门控、布尔表达式、项目观察结果以及报告中导出的逻辑元数据。
- **扫描状态/恢复:** 对长时间扫描进行检查点保存,并在中断后恢复。
- **抑制基线:** 生成并应用已知误报的基线,以将其从未来的报告中抑制。
- **Web UI:** 基于浏览器的扫描启动器,提供实时控制台输出和作业工件浏览器。

> 持续进行功能增强。多个新功能和改进计划在未来的版本中推出。

欢迎为更新或添加新规则以及未来的开发做出贡献。

如果您发现任何缺陷,请报告至 [[email protected]](mailto:[email protected])。

详细文档:[https://dakshlabs.com/#docs](https://dakshlabs.com/#docs)

---

## 快速开始

运行 Daksh SCRA 有两种方式——选择最适合您工作流程的一种:

| | 最适合 | 跳转至 |
|---|---|---|
| 🌐 **Web UI(Docker)** | 最简单的入门方式——一条命令、浏览器仪表盘、实时扫描进度以及报告/工件浏览器。推荐大多数用户使用。 | [Web UI(Docker)](#web-ui-docker) |
| 💻 **CLI(Python)** | 脚本编写、CI 流水线,或无需 Docker 即可运行扫描。 | [CLI 设置](#cli-setup) |

两种方式运行的是完全相同的扫描引擎——Web UI 是同一 CLI 的浏览器前端,因此无论采用哪种方式,结果都是相同的。

---

## Web UI(Docker)

运行 Daksh SCRA 最快的方式是通过其基于浏览器的 Web UI,只需一条 Docker Compose 命令即可启动。它为您提供扫描启动器、实时控制台输出以及可浏览的历史报告,无需本地 Python 环境。

Docker 设置将 Web UI 和 CLI 作为基于同一镜像构建的独立服务运行,因此您可以在同一容器中使用其中任一(或两者)。

### 启动 Web UI

前台模式(日志流式输出到您的终端):```bash
docker compose up --build

分离 / 后台模式:```bash docker compose up --build -d

root@kitploit:~
然后打开 [http://localhost:8080](http://localhost:8080)。

如需使用其他端口:```bash
DAKSH_PORT=9090 docker compose up

停止该堆栈,使用以下命令:```bash docker compose down

root@kitploit:~
### 登录

Web UI 需要账户。首次启动时,会根据 `DAKSH_ADMIN_USERNAME` / `DAKSH_ADMIN_PASSWORD`(在 `.env` 中设置)创建初始管理员账户;如果 `DAKSH_ADMIN_PASSWORD` 未设置,则会生成随机密码并仅打印一次到 API 的启动日志中——请保存好,因为之后无法找回。

首次登录时,系统会要求你设置自己的密码(以及可选的用户名)。管理员账户可以通过 `POST /api/v1/auth/users` API 端点创建更多账户(目前尚无专用 UI)。有关认证相关设置的完整列表(会话有效期、Cookie 安全性、CORS),请参阅 `.env.example`。

### 你能获得什么

- 响应式命令构建器,支持扫描、侦察、估算、侦察+估算、列表以及从 JSON 生成 PDF 等模式
- 执行期间实时控制台输出和按阶段实时进度显示
- 每个任务的 HTML / PDF / JSON 输出工件快照
- 浏览器内快速导航,涵盖运行表单、实时输出、工件和最近任务
- 内置目录浏览器,用于选择目标路径(支持操作系统感知:Windows、macOS、Linux / Docker)

在底层,CLI 仍然是事实来源——它负责所有扫描并生成每个 HTML / PDF / JSON 输出。Web UI 一次运行一个活动任务,并将每个已完成任务的输出快照保存到 `runtime/webui/jobs/<job-id>/artifacts/`,以便过往报告始终可访问。

### 在 Docker 中运行 CLI

使用 CLI 同样不需要本地 Python 环境——它作为独立的 Compose 服务提供,基于同一镜像构建:```bash
docker compose run --rm cli -h
docker compose run --rm cli -r auto -t /scan-targets/path/to/source

镜像中包含的内容

  • FastAPI 后端 + Web UI 前端
  • 完整的 Daksh SCRA CLI,作为独立服务运行
  • Playwright Chromium,用于 PDF 生成
  • 持久化的 reports/ 和 runtime/ 卷
  • 主机路径挂载,使扫描能够从容器内部访问源代码树

关键挂载点:

环境变量(在 .env 中配置):

在运行 Docker 之前,将 .env.example 复制为 .env,并设置适合你机器的路径和凭据。


CLI 安装

更倾向于直接用 Python 运行 Daksh SCRA?以下是本地安装方法。

前置要求

  • Python 3.8+
  • requirements.txt 中列出的所有库

1. 下载 Daksh SCRA```bash

git clone https://github.com/coffeeandsecurity/DakshSCRA.git

root@kitploit:~
或者从 [https://github.com/coffeeandsecurity/DakshSCRA](https://github.com/coffeeandsecurity/DakshSCRA) 下载最新的 zip 文件并解压。

### 2. 设置虚拟环境

> 💡 虚拟环境可以创建在任何目录中——不必位于 DakshSCRA 文件夹内。

**选项 A:一步式设置(推荐)**```bash
python setup_env.py

此脚本会创建虚拟环境、安装所有依赖项,并安装 Playwright 的 Chromium 浏览器(PDF 导出所需)。

选项 B:手动设置

Windows:```bash python -m venv daksh-env .\daksh-env\Scripts\activate

root@kitploit:~
macOS / Linux:```bash
python3 -m venv daksh-env
source daksh-env/bin/activate

然后安装依赖:```bash cd path/to/DakshSCRA pip install -r requirements.txt playwright install chromium

root@kitploit:~
---

## CLI 用法

在虚拟环境中使用 `python`,或在虚拟环境外使用 `python3`。

### 命令行选项```
usage: dakshscra.py [-h] [-r RULES] [-f FILE_TYPES] [-v] [-t TARGET_DIR]
                    [-l {R,RF}] [--recon] [--rs] [--estimate]
                    [-rpt FORMATS] [--pdf-from-json]
                    [--json-input-dir PATH] [--pdf-output PATH]
                    [--pdf-multi-dir PATH] [--pdf-single-only]
                    [--skip-analysis] [--loc]
                    [--baseline-file PATH] [--baseline-generate] [--no-baseline]
                    [--review-config PATH]
                    [--resume-scan] [--state-file PATH] [--no-state] [--state]

使用示例

-f(文件类型)为可选参数。若未指定,DakshSCRA 将使用所选平台对应的默认文件类型。```bash

Single platform scan

python dakshscra.py -r php -t /path/to/source

Multiple platforms

python dakshscra.py -r php,java,cpp -t /path/to/source

Auto-detect platform and apply matching rules

python dakshscra.py -r auto -t /path/to/source

Override filetypes

python dakshscra.py -r php -f dotnet -t /path/to/source

Reconnaissance only (no scanning)

python dakshscra.py --recon -t /path/to/source

Reconnaissance + scanning

python dakshscra.py --recon -r php -t /path/to/source

Strict recon (high-confidence detections only)

python dakshscra.py --recon --rs -t /path/to/source

Effort estimation

python dakshscra.py --estimate -t /path/to/source

Scan with HTML + PDF report output

python dakshscra.py -r auto -t /path/to/source -rpt html,pdf

Verbosity levels

python dakshscra.py -r php -v -t /path/to/source # default python dakshscra.py -r php -vvv -t /path/to/source # show all pattern checks

Generate suppression baseline from current findings

python dakshscra.py -r auto -t /path/to/source --baseline-generate

Apply suppression baseline (suppress known FPs)

python dakshscra.py -r auto -t /path/to/source --baseline-file config/suppressions.json

Disable baseline for this run

python dakshscra.py -r auto -t /path/to/source --no-baseline

Apply findings triage / review config

python dakshscra.py -r auto -t /path/to/source --review-config config/review.json

Scan with checkpoint state enabled

python dakshscra.py -r auto -t /path/to/source --state

Resume an interrupted scan

python dakshscra.py -r auto -t /path/to/source --resume-scan

Resume with a custom state file

python dakshscra.py -r auto -t /path/to/source --resume-scan --state-file runtime/scan_state.json

Generate PDF from existing JSON outputs (no re-scan)

python dakshscra.py --pdf-from-json

Generate PDF from a custom JSON directory

python dakshscra.py --pdf-from-json --json-input-dir ./custom/reports/data

Custom output paths for PDF

python dakshscra.py --pdf-from-json --pdf-output ./reports/scan/pdf/custom.pdf --pdf-multi-dir ./reports/scan/pdf/multi-file

Single combined PDF only (skip per-platform set)

python dakshscra.py --pdf-from-json --pdf-single-only

root@kitploit:~
### 支持的平台规则与框架```bash
python dakshscra.py -l R    # List platform rules and framework mappings
python dakshscra.py -l RF   # List platform rules, framework mappings, and filetypes

当前支持的平台和框架映射:

要获取最新的受支持平台和框架,请始终运行:```bash python dakshscra.py -l R

root@kitploit:~
---

## 配置参考

### `config/tool.yaml`

Daksh SCRA 运行时默认值通过 `config/tool.yaml` 进行控制。```yaml
state_management:
  enabled: false
  resume_mode: manual
  persist_after_seconds: 300
  persist_interval_seconds: 30
  default_state_file: runtime/scan_state.json
  cleanup_on_success: false

analysis:
  run_by_default: true
  include_frameworks: true
  report_theme: hacker_mode

分析器配置选项:

  • analysis.run_by_default
    • true:分析器在扫描期间自动运行
    • false:分析器被禁用,除非在配置中或通过 CLI 重新启用
  • analysis.include_frameworks
    • true:在存在框架检测的情况下,包含框架级别的分析器条目
    • false:仅输出平台级别的分析器结果
  • analysis.report_theme
    • hacker_mode:深色高对比度现代分析器主题(默认)
    • professional_mode:浅色现代分析器主题
    • both:同时生成两种主题变体并排显示

RDL 规则编写

RDL(规则描述语言)是 DakshSCRA 外部化的规则逻辑层。在当前架构中:

  • XML 规则仍然是规则清单,并携带元数据,如 name、regex、描述以及可选的 scan_config。
  • RDL 逻辑由 core/rdl_engine.py 执行。
  • 规则逻辑文件位于 rules/scanning/logic/... 下,并通过 XML 中的 <rdl_ref> 引用。
  • rdl_ref 值相对于 rules/scanning/ 解析,例如: logic/php/core/some_rule.rdl -> rules/scanning/logic/php/core/some_rule.rdl
  • 逻辑结果作为元数据导出到报告 JSON 中,例如 logic_engine、logic_source、 logic_reason、、 和 。

旧的 <rdl> 内联形式不再是当前架构,不应再用于新规则。

RDL 架构概览```text

XML rule -> regex / exclude / scan_config / descriptions -> rdl_ref -> rules/scanning/logic///.rdl -> core/rdl_engine.py -> pass / fail -> reason / fail_reason -> trace / consulted_files / outcome

root@kitploit:~
#### 扫描顺序

对于源规则,DakshSCRA 按以下顺序评估逻辑:

1. Recon 选择匹配的平台和框架。
2. 从 `rules/scanning/platform/...` 加载 XML 规则。
3. 当存在时,`regex` 查找候选行或整文件匹配。
4. 当存在时,`exclude` 移除该规则的明显噪声。
5. 根据当前文件文本、当前文件路径和项目根目录,评估来自 `rdl_ref` 的外部 `.rdl` 文件。
6. 如果 RDL 脚本通过,DakshSCRA 保留发现结果,并将导出的逻辑元数据合并到报告输出中。
7. 如果 RDL 脚本失败,则抑制该匹配,并附带 RDL 失败原因和决策跟踪元数据。

对于 `filepaths.xml` 中的文件路径规则,适用相同的 `rdl_ref` 模型,但匹配对象是
规范化后的相对路径,而非源代码文本。在该模式下,RDL 接收相对路径
字符串作为当前文件文本和路径上下文。

#### 当前规则结构```xml
<rule>
  <name>Rule Name</name>
  <regex><![CDATA[regex_to_match]]></regex>
  <rdl_ref>logic/common/core/insecure_sql_query_unsafe_string_concatenation.rdl</rdl_ref>
  <exclude><![CDATA[pattern_to_exclude_lines]]></exclude>  <!-- optional -->
  <scan_config>...</scan_config>                           <!-- optional -->
  <rule_desc>Short description of what the rule detects.</rule_desc>
  <vuln_desc>Why the pattern matters.</vuln_desc>
  <developer>Fix guidance for developers.</developer>
  <reviewer>Manual confirmation guidance for reviewers.</reviewer>
</rule>

当前的 .rdl 结构```text

VERSION 1 WHEN PRESENT /\b(?:mysql_query|mysqli_query|->query)\s*\(/i WHEN EXPR PRESENT:\$_(GET|POST|REQUEST|COOKIE) && MISSING:\b(?:prepare|bindParam|bindValue|PDO::prepare)\b REPORT AS area_of_interest REASON SQL query execution appears reachable without parameterisation in this file. FAIL_REASON Matching query API was found, but the file also contains prepared-statement indicators. TRACE SQLi gate: input source present and mitigation missing.

root@kitploit:~
#### 当前布局```text
rules/
└── scanning/
    ├── platform/
    │   ├── php/php.xml
    │   ├── java/java.xml
    │   └── ...
    └── logic/
        ├── common/core/
        ├── php/core/
        ├── php/framework/laravel/
        ├── mobile/android/core/
        ├── filepaths/core/
        └── ...

执行语义

  • WHEN PRESENT、WHEN MISSING 和 WHEN CURRENT_FILE_MATCHES 针对当前文件文本进行评估。
  • WHEN FILE_NAME_IS 和 WHEN FILE_PATH_MATCHES 针对当前文件路径上下文进行评估。
  • WHEN EXPR 支持基于 PRESENT:、MISSING: 和 EXISTS: 谓词的布尔逻辑。
  • OBSERVE PROJECT_HAS_GLOB ... AS ... 不会对发现结果进行门控;它仅将相关项目文件记录到跟踪元数据中。
  • REPORT AS、REASON、FAIL_REASON 和 TRACE 控制导出的报告元数据。

支持的 RDL 命令

WHEN EXPR 中的布尔表达式支持:

  • PRESENT:<regex>
  • MISSING:<regex>
  • EXISTS:<regex>
  • &&、||、! 以及括号

示例 1 - PHP SQL 注入门控

XML 规则:```xml Possible SQL Injection in Query Execution query)\s*\(]]> <rdl_ref>logic/common/core/insecure_sql_query_unsafe_string_concatenation.rdl</rdl_ref> <rule_desc>...</rule_desc>

root@kitploit:~
外部RDL:```text
VERSION 1
WHEN PRESENT /\b(?:mysql_query|mysqli_query|->query)\s*\(/i
WHEN EXPR PRESENT:\$_(GET|POST|REQUEST|COOKIE) && MISSING:\b(?:prepare|bindParam|bindValue|PDO::prepare)\b
REPORT AS area_of_interest
REASON Query execution appears to rely on direct input without parameterisation.
FAIL_REASON Query API matched, but parameterised query indicators were also found in the file.

示例 2 - 带文件感知检查的 Android 清单规则

XML 规则:```xml Exported Components Without Permission activity|service|receiver|provider)\s[^>]*android:name="(?P[^"]+)"[^>]*android:exported="true"[^>]*(?:/>|>)]]> <rdl_ref>logic/mobile/android/core/exported_components.rdl</rdl_ref> <scan_config>...</scan_config>

root@kitploit:~
外部 RDL:```text
VERSION 1
WHEN FILE_NAME_IS AndroidManifest.xml
WHEN CURRENT_FILE_MATCHES /android:exported\s*=\s*"true"/i
WHEN MISSING /android:permission\s*=\s*"/i
REPORT AS area_of_interest
REASON Exported component appears reachable without a permission guard.

示例 3 - 文件路径关注区域规则

XML 规则:```xml Admin Section File Path <rdl_ref>logic/filepaths/core/admin_section.rdl</rdl_ref>

root@kitploit:~
外部 RDL:```text
VERSION 1
WHEN CURRENT_FILE_MATCHES /(^|\/)(admin|administrator|root)(\/|$)/i
UNLESS CURRENT_FILE_MATCHES /(^|\/)(tests?|docs?|samples?|examples?)(\/|$)/i
REPORT AS area_of_interest
REASON File path suggests privileged application functionality.
FAIL_REASON Path matched an excluded documentation or sample location.

编写指南

  • 保持 regex 足够宽泛以捕获候选对象,然后使用 RDL 过滤上下文。
  • 优先使用 rdl_ref 处理所有规则逻辑,并将 .rdl 文件放在相应的平台/框架逻辑树旁边。
  • 不要添加新的内联 <rdl> 块。
  • 对于简单门控使用 WHEN PRESENT / WHEN MISSING,仅当逻辑确实为布尔型时才使用 WHEN EXPR。
  • 将面向审阅者的推理放在 REASON 中,将抑制说明放在 FAIL_REASON 中。
  • 将 PRESENT 和 MISSING 视为整个文件级别的检查。文件中任何位置的缓解措施都可以抑制该文件中的所有匹配项。
  • 使用 OBSERVE PROJECT_HAS_GLOB 来丰富带有项目上下文的发现结果,而不是作为通过/失败门控。
  • 保持 logic/... 路径稳定且限定在平台范围内,以便 XML 规则保持精简,逻辑层保持可复用。

报告输出结构

所有输出均写入 reports/ 目录下:``` reports/ ├── scan/ │ ├── html/ │ │ ├── report.html # Single-file HTML scan report │ │ └── multi-file/ # Per-platform HTML report set │ ├── pdf/ │ │ ├── report.pdf # Single-file PDF scan report │ │ └── multi-file/ # Per-platform PDF report set │ ├── recon/ │ │ └── reconnaissance.html # Reconnaissance HTML report │ └── estimate/ │ └── estimation.html # Effort estimation HTML report ├── analysis/ │ └── / │ ├── analysis.html # Taint analysis report (default theme) │ ├── analysis_professional.html # Professional theme (if theme=both) │ ├── analysis_xref.html # Cross-reference report │ └── analysis.json # Structured analysis data └── data/ ├── areas_of_interest.json # AoI findings ├── filepaths_aoi.json # File path AoI findings ├── summary.json # Scan summary ├── recon.json # Recon summary └── analysis.json # Analyzer output

root@kitploit:~
运行时文件(扫描状态、日志、清单)写入 `runtime/` 目录下。

通过 Web UI 运行时,每个任务的输出还会额外快照保存到 `runtime/webui/jobs/<job-id>/artifacts/` 目录下(参见 [Web UI (Docker)](#web-ui-docker))。

---

## 作者

| | |
|---|---|
| 网站 | [coffeeandsecurity.com](https://www.coffeeandsecurity.com) |
| 邮箱 | [email protected] |
| Twitter / X | [@coffeensecurity](https://x.com/coffeensecurity) |
| 源码 | [github.com/coffeeandsecurity/DakshSCRA](https://github.com/coffeeandsecurity/DakshSCRA) |
| 许可证 | GNU 通用公共许可证 v3.0 (GPL-3.0) |

如果 DakshSCRA 帮助您的团队节省了大量时间、精力或成本,减少了对昂贵商业工具的依赖,提升了审查覆盖率,或让代码审查更加结构化、高效,欢迎随时联系我分享您的使用体验。我一直乐于接受深思熟虑的反馈和有趣的交流。

发现 Bug 或想贡献代码?请在 GitHub 上提交 Issue 或 Pull Request。
下载工具
挂载容器内路径
项目源代码/app
默认扫描根目录/scan-targets
主机驱动器别名/host、/host/c、/host/d
WSL 挂载/mnt、/run/desktop/mnt/host
变量描述
DAKSH_PORTWeb UI 端口(默认:8080)
DAKSH_SCAN_ROOT容器内的默认目标目录
DAKSH_HOST_SOURCE挂载为 /scan-targets 的主机路径(默认:/tmp)
DAKSH_HOST_MOUNT额外的主机挂载根目录
DAKSH_HOST_CWindows C: 驱动器路径(WSL)
DAKSH_HOST_DWindows D: 驱动器路径(WSL)
DAKSH_DESKTOP_MOUNTWSL 桌面挂载路径
DAKSH_BROWSE_ROOTS覆盖目录浏览器根目录(逗号分隔)
DAKSH_ADMIN_USERNAME初始管理员用户名(默认:admin)
DAKSH_ADMIN_PASSWORD初始管理员密码——强烈建议显式设置
选项描述
-r RULES平台规则(例如 php、java、php,java)或 auto 用于自动检测
-f FILE_TYPES覆盖扫描所用的默认文件类型
-v详细程度级别(-v、-vv、-vvv)
-t TARGET_DIR目标源代码目录
-l {R,RF}列出平台规则 + 框架 [R] 或包含文件类型 [RF]
--recon运行侦察(平台 / 框架 / 语言检测)
--rs, --recon-strict严格侦察:仅高置信度检测(与 --recon 配合使用)
--estimate根据代码库规模估算代码审查工作量
-rpt, --report FORMATS报告格式:html、pdf 或 html,pdf(默认:html)
--pdf-from-json从现有 JSON 输出生成 PDF 报告,无需重新扫描
--json-input-dir PATHJSON 报告目录(默认:./reports/data)
--pdf-output PATH单个 PDF 输出路径(默认:./reports/scan/pdf/report.pdf)
--pdf-multi-dir PATH多文件 PDF 输出目录(默认:./reports/scan/pdf/multi-file)
--pdf-single-only仅生成合并后的单文件 PDF;跳过按平台生成的多文件集合
--skip-analysis本次运行禁用分析器阶段
--loc统计有效代码行数
--baseline-file PATH抑制基线文件(JSON)
--baseline-generate根据当前发现生成抑制基线
--no-baseline本次运行禁用基线抑制
--review-config PATH发现结果分类文件(JSON);从报告中抑制先前已审查的误报
--resume-scan从状态文件恢复先前中断的扫描
--state-file PATH自定义扫描状态 / 检查点文件路径
--no-state本次运行禁用扫描状态检查点
--state本次运行强制启用扫描状态检查点
平台框架
dotnetaspnetcore, entityframework
phpcodeigniter, drupal, laravel, symfony, wordpress
javahibernate, spring, springboot
javascriptangular, express, nestjs, nextjs, react, vue
kotlinktor, springkotlin
pythondjango, fastapi, flask
goecho, fiber, gin
cfreertos
cppboost, qt
androidcordova-android, flutter-android, ionic-android, jetpack, nativescript-android, reactnative-android, xamarin-android
ioscordova-ios, flutter-ios, ionic-ios, nativescript-ios, reactnative-ios, swiftui, uikit, xamarin-ios
reactnativereactnative
flutterflutter
xamarinxamarin
ionicionic
nativescriptnativescript
cordovacordova
rubyrails, sinatra
rustactix, axum, rocket
common-
logic_trace
logic_consulted_files
logic_outcome
  • 正则表达式标记既可以写成原始模式,也可以写成 /pattern/flags 形式,支持 i、m 和 s 标志。
  • 命令行为典型用途
    WHEN PRESENT <regex>要求当前文件文本中存在某个模式要求同时出现风险 API 或敏感字段
    WHEN MISSING <regex>要求当前文件文本中不存在某个模式当缓解措施已存在时抑制发现
    WHEN EXPR <expr>使用 PRESENT: / MISSING: / EXISTS: 结合 &&、`
    WHEN CURRENT_FILE_MATCHES <regex>针对完整当前文件文本进行匹配重新检查复杂的整文件条件
    WHEN FILE_NAME_IS <name>要求当前文件名完全匹配限制 plist / manifest / 配置文件规则
    WHEN FILE_PATH_MATCHES <glob>要求当前相对路径匹配某个 glob缩小框架/配置文件路径规则范围
    UNLESS CURRENT_FILE_MATCHES <regex>当整个文件匹配排除模式时判定失败阻止已知安全的特定结构情况
    OBSERVE PROJECT_HAS_GLOB <glob> AS <label>将相关项目文件记录到跟踪元数据中展示支持性配置或伴随文件
    REPORT AS <outcome>设置规则结果,通常为 area_of_interest为未来明确结果做准备
    REASON <text>规则通过时显示的原因解释为何发现结果保持可见
    FAIL_REASON <text>规则抑制匹配时显示的原因解释为何命中被过滤
    TRACE <text>添加调试/决策跟踪行迁移/调试支持