本插件做为Java项目静态代码安全审计工具,侧重于在编码过程当中发现项目潜在的安全风险,并提供一键修复能力。html
本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件,检查速度快,占用资源少。java
插件提供的规则名称均以"Momo"开头。python
Intellij IDEA ( Community / Ultimate ) >= 2017.3git
IDEA 香是香,可能你会说用它要收费,其实它也有开源的社区版本,收费的专业版也很容易申请到激活码,关注公众号Java技术栈,回复:IDEA,能够阅读我分享过的获取正版 IDEA 激活码的教程,不少粉丝都反馈说轻松获得了,感兴趣的均可以去申请,不能太容易了。算法
IDEA插件市场搜索"immomo"安装。spring
演示一:XXE漏洞发现与一键修复json
演示二:Mybatis XML Mapper SQL注入漏洞发现与一键修复安全
编号 | 规则名称 | 修复建议 | 一键修复 |
---|---|---|---|
1001 | 多项式拼接型SQL注入漏洞 | T | |
1002 | 占位符拼接型SQL注入漏洞 | T | |
1003 | Mybatis注解SQL注入漏洞 | T | T |
1004 | Mybatis XML SQL注入漏洞 | T | T |
1005 | RegexDos风险 | T | T |
1006 | Jackson反序列化风险 | T | T |
1007 | Fastjson反序列化风险 | T | T |
1008 | Netty响应拆分攻击 | T | T |
1009 | 固定的随机数种子风险 | T | T |
1010 | XXE漏洞 | T | T |
1011 | XStream反序列化风险 | T | T |
1014 | 脆弱的消息摘要算法 | T | |
1015 | 过期的加密标准 | T | |
1016 | XMLDecoder反序列化风险 | T | |
1017 | LDAP反序列化风险 | T | T |
1018 | 宽泛的CORS Allowed Origin设置 | T | |
1019 | SpringSecurity关闭Debug模式 | T | T |
1020 | 硬编码凭证风险 | T | |
1021 | "@RequestMapping" 方法应当为 "public" | T | T |
1022 | Spring 会话固定攻击风险 | T | T |
1023 | 不安全的伪随机数生成器 | T | T |
1024 | OpenSAML2 认证绕过风险 | T | T |
1025 | IP地址硬编码 | T |
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
预发布状况下,插件上报地址写于src/main/resources/properties/pre.properties
intellij-idea
正式发布状况下,插件上报地址写于src/main/resources/properties/prod.properties
app
以版本号命名的分支,原则上表明支持的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.3 | 193 | 2018.3.* <= x |
2017.3 | 173 | 2017.3.* <= x <= 2018.2.* |
发布到插件市场的版本不支持漏洞上报功能。
发布到插件市场的版本不支持白名单签名下发功能。
开源地址:https://gitee.com/mirrors/momo-code-sec-inspector-java
近期热文推荐:
1.Java 15 正式发布, 14 个新特性,刷新你的认知!!
2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!
3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。
以为不错,别忘了随手点赞+转发哦!