本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。
本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件,检查速度快,占用资源少。
插件提供的规则名称均以"Momo"开头。
版本支持
Intellij IDEA ( Community / Ultimate ) >= 2017.3
IDEA 香是香,可能你会说用它要收费,其实它也有开源的社区版本,收费的专业版也很容易申请到激活码。
安装使用
IDEA插件市场搜索"immomo"安装。
效果展示
演示一:XXE漏洞发现与一键修复
演示二:Mybatis XML Mapper SQL注入漏洞发现与一键修复
插件规则
项目结构
脚手架
单元测试
> ./gradlew :test
预发布打包
- PLUGIN_BAN_CONST=true ./gradlew --no-daemon clean build -PMOMO_CODE_SEC_INSPECTOR_ENV=pre
- build/distributions/*.zip 为待发布插件
预发布情况下,插件上报地址写于src/main/resources/properties/pre.properties
发布打包
- PLUGIN_BAN_CONST=true ./gradlew --no-daemon clean build -PMOMO_CODE_SEC_INSPECTOR_ENV=prod
- build/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字段。
- 版本号对应关系
- JetBrains Plugins Marketplace 版本
发布到插件市场的版本不支持漏洞上报功能。
发布到插件市场的版本不支持白名单签名下发功能。
开源地址:https://gitee.com/mirrors/momo-code-sec-inspector-java