Semgrep 支持 30 多种语言。
类别 | 语言 |
---|---|
遗传算法 | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
测试版 | Kotlin · Rust |
实验性的 | Bash·C·C++·Clojure·Dart·Dockerfile·Elixir·HTML·Julia·Jsonnet·Lisp·Lua·OCaml·R·Scheme·Solidity·Swift·YAML·XML·通用(ERB、Jinja等) |
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
对于初学者,我们建议从Semgrep Cloud Platform开始,因为它提供了一个可视化界面、一个演示项目、结果分类和探索工作流,并且可以快速地在 CI/CD 中进行设置。扫描仍在本地,代码未上传。或者,您也可以在不登录的情况下使用 CLI 并导航终端输出以运行一次性搜索。
# For macOS
$ brew install semgrep
# For Ubuntu/WSL/Linux/macOS
$ python3 -m pip install semgrep
# To try Semgrep without installation run via Docker
$ docker run --rm -v "${PWD}:/src" returntocorp/semgrep semgrep
转到应用程序的根目录并运行semgrep scan --config auto
. 这将使用默认设置扫描您的项目。
[可选,但推荐] 运行semgrep login
以获取 Semgrep 云平台的登录 URL。在浏览器中打开登录网址并登录。
注册到semgrep.dev
探索演示应用程序
通过导航到扫描您的项目Projects > Scan New Project > Run scan in CI
选择您的版本控制系统并按照向导添加您的项目。完成此设置后,Semgrep 将在每次拉取请求后扫描您的项目。
[可选但推荐] 如果您想在本地运行 Semgrep,请按照 CLI 部分中的步骤操作。
访问Docs > Running rules以了解有关auto
配置和其他规则的更多信息。
如果有任何问题,请在 Smegrep Slack 组中提问https://go.semgrep.dev/slack
要运行 Semgrep 供应链,请联系 Semgrep 团队。访问完整文档以了解更多信息。
Semgrep 生态系统包括以下产品:
和:
加入已经在 GitLab、Dropbox、Slack、Figma、Shopify、HashiCorp、Snowflake 和 Trail of Bits 等公司使用 Semgrep 的数十万其他开发人员和安全工程师。
Semgrep 由软件安全公司 Semgrep, Inc.开发并提供商业支持。
Semgrep 规则看起来像您已经编写的代码;没有抽象语法树、正则表达式角力或痛苦的 DSL。下面是查找 Python 语句的快速规则print()
。
单击此处在 Semgrep 的 Playground 中在线运行它。
访问文档 > 规则示例以了解用例和想法。
用例 | semgrep 规则 |
---|---|
禁止危险的 API | 防止使用 exec |
搜索路由和认证 | 提取 Spring 路由 |
强制使用安全默认值 | 安全地设置 Flask cookie |
流入接收器的污染数据 | ExpressJS 数据流进入 sandbox.run |
实施项目最佳实践 | 使用 assertEqual 进行 == 检查,始终检查子进程调用 |
编纂项目特定知识 | 在进行交易之前验证交易 |
审核安全热点 | 在 Apache Airflow 中查找 XSS,硬编码凭据 |
审计配置文件 | 查找 S3 ARN 使用 |
从已弃用的 API 迁移 | DES 已弃用,弃用的 Flask API,弃用的 Bokeh API |
应用自动修复 | 使用 listenAndServeTLS |
访问Docs > Extensions以了解如何在您的编辑器或预提交中使用 Semgrep。当集成到 CI 中并配置为扫描拉取请求时,Semgrep 将仅报告该拉取请求引入的问题;这使您可以开始使用 Semgrep,而无需修复或忽略先前存在的问题!
在网站上浏览完整的 Semgrep文档。如果您是 Semgrep 的新手,请查看Docs > Getting started或交互式教程。
使用注册表中的远程配置(如--config=p/ci
)向 semgrep.dev 报告假名规则指标。
使用本地文件(如--config=xyz.yml
)中的配置不会启用指标。
要禁用注册表规则指标,请使用--metrics=off
.
Semgrep隐私政策描述了指导数据收集决策的原则,以及启用指标时收集和未收集的数据的细分。
要升级,请运行以下与您安装 Semgrep 的方式相关的命令:
# Using Homebrew
$ brew upgrade semgrep
# Using pip
$ python3 -m pip install --upgrade semgrep
# Using Docker
$ docker pull returntocorp/semgrep:latest
[/hidecontent]