Translated ['network-services-pentesting/pentesting-web/code-review-tool

This commit is contained in:
Translator 2023-09-04 16:28:23 +00:00
parent 4613549af4
commit 53dea2dab5

View file

@ -1,14 +1,14 @@
# 源代码审查 / SAST工具
# 源代码审查 / SAST 工具
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 你在一家**网络安全公司**工作吗?你想在 HackTricks 中看到你的**公司广告**吗?或者你想获得**PEASS 的最新版本或下载 HackTricks 的 PDF 版本**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **通过向**[**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
</details>
@ -21,7 +21,7 @@
### [Naxus - AI-Gents](https://www.naxusai.com/)
有一个**免费的套餐用于审查PRs**。
有一个**免费的套餐用于审查 PR**。
### [**Semgrep**](https://github.com/returntocorp/semgrep)
@ -145,24 +145,29 @@ codeql resolve qlpacks
## You need to export a GITHUB_TOKEN (codeql will detect languages automatically)
export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create <database> --db-cluster --source-root </path/to/repo>
## Or to indicate the languages yourself (https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create)
## Or to indicate the languages yourself
codeql database create <database> --language=<language-identifier> --source-root </path/to/repo>
## For example
export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create /tmp/codeql_db --db-cluster --source-root /path/to/repo # Generate the folder /tmp/codeql_db
codeql database create /tmp/codeql_db --db-cluster --source-root /path/to/repo # This will generate the folder /tmp/codeql_db
# Analyze the code
codeql database analyze <database> --format=<format> --output=</out/file/path> --download
## Example
codeql database analyze /tmp/codeql_db --download --format=csv --output=/tmp/graphql_results.csv
codeql database analyze <database> --format=<format> --output=</out/file/path>
# If you used --db-cluster a different db was created per language, you need to indicate it. In this example I analyze the javascript folder.
codeql database analyze /tmp/codeql_db/javascript --format=csv --output=/tmp/graphql_results.csv
# Get sarif format
codeql database analyze /tmp/codeql_db/javascript --format=sarif-latest --output=/tmp/graphql_results.sarif
# You can visualize the findings in https://microsoft.github.io/sarif-web-component/
```
{% endcode %}
您还可以使用[**VSCode扩展**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql)在VSCode中获取结果。
您还可以使用[**VSCode扩展**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql)在VSCode中获取结果。您仍然需要手动创建数据库,然后可以选择任何文件并单击`右键`->`CodeQL: Run Queries in Selected Files`
### [Insider](https://github.com/insidersec/insider)
这是一个**开源**工具,但看起来**未维护**。
这是一个**开源**项目,但看起来**不再维护**。
#### 支持的语言
@ -240,9 +245,9 @@ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe test.cs
Java是一种广泛使用的编程语言常用于开发Web应用程序和企业级应用程序。在进行代码审查时以下工具可以帮助发现潜在的安全漏洞和代码质量问题。
### FindBugs
### 1. FindBugs
FindBugs是一个静态代码分析工具用于查找Java代码中的常见错误和潜在的安全漏洞。它可以检测到空指针引用、资源未关闭、不安全的类型转换等问题。
FindBugs是一个静态分析工具用于检测Java代码中的常见错误和潜在的安全漏洞。它可以识别空指针引用、资源未关闭、不安全的类型转换等问题。
使用方法:
@ -250,39 +255,39 @@ FindBugs是一个静态代码分析工具用于查找Java代码中的常见
$ findbugs -textui <path_to_jar_file>
```
### PMD
### 2. PMD
PMD是另一个静态代码分析工具用于检查Java代码中的潜在问题和不良实践。它可以发现未使用的变量、重复的代码、不必要的条件等。
PMD是一个源代码静态分析工具用于检测Java代码中的潜在问题和编码规范违规。它可以识别未使用的变量、重复的代码、不必要的条件判断问题
使用方法:
```bash
$ pmd -d <path_to_source_code> -R <ruleset_file>
$ pmd -d <path_to_source_code> -f text
```
### Checkstyle
### 3. Checkstyle
Checkstyle是一个用于强制执行编码规范的工具。它可以检查Java代码是否符合指定的代码风格和规范。
Checkstyle是一个用于检查Java代码风格和编码规范的工具。它可以识别缩进错误、命名规范违规、代码注释问题等
使用方法:
```bash
$ checkstyle -c <config_file> <path_to_source_code>
$ checkstyle -c <path_to_checkstyle_config> <path_to_source_code>
```
### SonarQube
### 4. SonarQube
SonarQube是一个用于代码质量管理的开源平台。它可以检测代码中的漏洞、坏味道和技术债务,并提供有关如何改进代码质量的建议。
SonarQube是一个用于代码质量管理的开源平台。它可以检测Java代码中的安全漏洞、代码重复、代码覆盖率等问题并提供详细的报告和建议。
使用方法:
1. 安装SonarQube服务器。
2. 在项目中集成SonarQube扫描器
3. 运行扫描器以分析代码并生成报告
2. 在项目中集成SonarQube插件
3. 运行SonarQube分析
### FindSecBugs
### 5. FindSecBugs
FindSecBugs是一个专门用于查找Java代码中安全漏洞的工具。它基于FindBugs并提供了更多的安全规则和检查项
FindSecBugs是一个专门用于检测Java代码中安全漏洞的工具。它可以识别常见的安全问题如SQL注入、XSS攻击、敏感信息泄露等
使用方法:
@ -290,7 +295,7 @@ FindSecBugs是一个专门用于查找Java代码中安全漏洞的工具。它
$ findsecbugs -progress -effort:max <path_to_jar_file>
```
以上是一些常用的Java代码审查工具可以帮助发现潜在的安全漏洞和提高代码质量。在进行代码审查时,建议结合多个工具使用,以获得更全面的分析结果
以上是一些常用的Java代码审查工具可以帮助发现潜在的安全漏洞和代码质量问题。在进行代码审查时,建议结合多种工具使用,以提高审查的准确性和效率
```bash
# JD-Gui
https://github.com/java-decompiler/jd-gui