本插件利用idea原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件,检查速度快,占用资源少。安装使用IDEA插件市场搜索"immomo"安装。插件具体支持IDEA版本范围见gradle.properties中idea_since_build与idea_until_build部分。插件版本号命名规则:原则上,插件版本号以支持的idea版本下限为大版本编号。需要注意的是,因IDEA更新机制问题,插件新版本号只能向上增长。发布到插件市场的版本不支持白名单签名下发功能。
本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。
本插件利用idea原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件,检查速度快,占用资源少。
插件提供的规则名称均以"Momo"开头。
版本支持Intellij IDEA ( Community / Ultimate ) >=2017.3
IDEA香是香,可能你会说用它要收费,其实它也有开源的社区版本,收费的专业版也很容易申请到激活码。
安装使用IDEA插件市场搜索"immomo"安装。
效果展示演示一:XXE漏洞发现与一键修复
演示二:Mybatis XML Mapper SQL注入漏洞发现与一键修复
插件规则编号规则名称修复建议一键修复1001多项式拼接型SQL注入漏洞T1002占位符拼接型SQL注入漏洞T1003Mybatis注解SQL注入漏洞TT1004Mybatis XML SQL注入漏洞TT1005RegexDos风险TT1006Jackson反序列化风险TT1007Fastjson反序列化风险TT1008Netty响应拆分攻击TT1009固定的随机数种子风险TT1010XXE漏洞TT1011XStream反序列化风险TT1014脆弱的消息摘要算法T1015过时的加密标准T1016XMLDecoder反序列化风险T1017LDAP反序列化风险TT1018宽泛的CORS Allowed Origin设置T1019SpringSecurity关闭Debug模式TT1020硬编码凭证风险T1021"@RequestMapping" 方法应当为 "public"TT1022Spring 会话固定攻击风险TT1023不安全的伪随机数生成器TT1024OpenSAML2 认证绕过风险TT1025IP地址硬编码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
- 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字段。
- 版本号对应关系
分支名插件版本IDEA版本2018.31932018.3.* <= x2017.31732017.3.* <= x <= 2018.2.*
- JetBrains Plugins Marketplace版本
发布到插件市场的版本不支持漏洞上报功能。
发布到插件市场的版本不支持白名单签名下发功能。
最后源码、项目地址、获取方式:关注小编 转发文章 私信【555】免费获取附赠福利:
另外整理成了40多套PDF文档:全套的Java面试宝典手册1000 pdf
1.编程 开源框架 分布式”等七大面试专栏
2.Java核心知识点1000 Java面试题合集pdf
3.阿里、京东、蚂蚁等大厂面试真题解析
4.Spring全家桶面试题
5.算法笔记文档 刷题手册
6.思维导图(jvm、mysql、并发编程、数据库、kafka等等)。
如果你对这个感兴趣,小编可以免费分享。重要的事情说三遍,转发 转发 转发,一定要记得点赞转发哦!!!