首頁>技術>

本外掛作為Java專案靜態程式碼安全審計工具,側重於在編碼過程中發現專案潛在的安全風險,並提供一鍵修復能力。

本外掛利用IDEA原生Inspection機制檢查專案,自動檢查當前活躍視窗的活躍檔案,檢查速度快,佔用資源少。

外掛提供的規則名稱均以"Momo"開頭。

版本支援

Intellij IDEA ( Community / Ultimate ) >= 2017.3

IDEA 香是香,可能你會說用它要收費,其實它也有開源的社群版本,收費的專業版也很容易申請到啟用碼。

安裝使用

IDEA外掛市場搜尋"immomo"安裝。

效果展示

演示一:XXE漏洞發現與一鍵修復

演示二:Mybatis XML Mapper SQL注入漏洞發現與一鍵修復

專案結構
src├── main│   ├── java│   │   └── com│   │       └── immomo│   │           └── momosec│   │               ├── aspect│   │               ├── entity│   │               ├── fix│   │               ├── lang│   │               │   ├── java│   │               │   │   ├── rule│   │               │   │   │   └── momosecurity│   │               │   │   │       └── {InspectionName}.java│   │               │   │   └── utils│   │               │   └── xml│   │               │       └── rule│   │               │           └── momosecurity│   │               │               └── {InspectionName}.java│   │               └── utils│   └── resources│       ├── META-INF│       │   ├── description.html│       │   ├── pluginIcon.svg│       │   └── plugin.xml│       └── inspectionDescriptions│           └── {InspectionName}.html└── test    ├── java    │   └── com    │       └── immomo    │           └── momosec    │               └── lang    │                   ├── java    │                   │   ├── fix    │                   │   └── rule    │                   │       └── momosecurity    │                   │           └── {InspectionName}Test.java    │                   └── xml    │                       └── rule    │                           └── momosecurity    │                               └── {InspectionName}Test.java    ├── resources    └── testData        └── lang            ├── java            │   └── rule            │       └── momosecurity            │           └── {InspectionName}            │               └──...            └── xml                └── rule                    └── momosecurity                        └── {InspectionName}                            └──...
腳手架
# 新增檢查規則> python script/addInspection.py# 刪除檢查規則> python script/deleteInspection.py
單元測試
> ./gradlew :test
預釋出打包PLUGIN_BAN_CONST=true ./gradlew --no-daemon clean build -PMOMO_CODE_SEC_INSPECTOR_ENV=prebuild/distributions/*.zip 為待發布外掛

預釋出情況下,外掛上報地址寫於src/main/resources/properties/pre.properties

釋出打包PLUGIN_BAN_CONST=true ./gradlew --no-daemon clean build -PMOMO_CODE_SEC_INSPECTOR_ENV=prodbuild/distributions/*.zip 為待發布外掛

正式釋出情況下,外掛上報地址寫於src/main/resources/properties/prod.properties

注意事項分支命名規則:

以版本號命名的分支,原則上代表支援的idea版本下限。

如branch為2018.3代表當前分支支援版本範圍是>=2018.3 (或說from 183.* to *)。

外掛具體支援idea版本範圍見gradle.properties中idea_since_build與idea_until_build部分。

外掛版本號命名規則:

原則上,外掛版本號以支援的idea版本下限為大版本編號。

如外掛當前版本為x.1,x為開發時所用IDEA版本編號,.1為外掛釋出版本。

需要注意的是,因IDEA更新機制問題,外掛新版本號只能向上增長

具體見gradle.properties的plugin_version欄位。

版本號對應關係

分支名外掛版本IDEA版本2018.31932018.3.* <= x2017.31732017.3.* <= x <= 2018.2.*

JetBrains Plugins Marketplace 版本

釋出到外掛市場的版本不支援漏洞上報功能。

釋出到外掛市場的版本不支援白名單簽名下發功能。

開源地址:https://gitee.com/mirrors/momo-code-sec-inspector-java

3
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 功能強大的資料庫管理軟體