发现一款牛逼的 IDEA 插件:检测代码漏洞,一键修复!
上一篇:再见了,收费的Navicat
本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。
本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件,检查速度快,占用资源少。
插件提供的规则名称均以"Momo"开头。
版本支持
Intellij IDEA ( Community / Ultimate ) >= 2017.3
IDEA 香是香,可能你会说用它要收费,其实它也有开源的社区版本,收费的专业版也很容易申请到激活码,关注公众号互联网架构师,回复:2T,可以阅读我分享过的架构师教程,很多粉丝都反馈说轻松得到了,不能太容易了。
安装使用
IDEA插件市场搜索"immomo"安装。
效果展示
演示一:XXE漏洞发现与一键修复
演示二: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
预发布打包
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.3 | 193 | 2018.3.* <= x |
2017.3 | 173 | 2017.3.* <= x <= 2018.2.* |
JetBrains Plugins Marketplace 版本
发布到插件市场的版本不支持漏洞上报功能。
发布到插件市场的版本不支持白名单签名下发功能。
开源地址:https://gitee.com/mirrors/momo-code-sec-inspector-java
PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。
大家一起在评论区聊聊呗~
关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。
猜你喜欢
1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结
2、如何才能成为优秀的架构师?
3、从零开始搭建创业公司后台技术栈
4、程序员一般可以从什么平台接私活?
5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...
6、滴滴业务中台构建实践,首次曝光
7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事
8、15张图看懂瞎忙和高效的区别
9、2T架构师学习资料干货分享
发现一款牛逼的 IDEA 插件:检测代码漏洞,一键修复!相关推荐
- 又发现一款牛逼的 API 敏捷开发工具
来源:xie.infoq.cn/article/b5c3a339267e1351c6151b42a 初衷 跟大家分享一个牛逼的 API 敏捷开发工具,用尽可能简单的方式,完成尽可能多的需求.通过约 ...
- 一款牛逼的IDEA插件:检测代码漏洞
前言 本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力. 本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件 ...
- 强烈推荐16 款牛逼的 IDEA 插件,让你开发速度飞起来!
当前最新版IDEA版本是2020.1.随着IDEA版本的升级,有些插件不再支持,而有些插件变成了收费插件,这些插件将不再推荐. 以下列举的,都是亲测可以在2020.1版本的IDEA中使用的插件. go ...
- 14 款牛逼的 IDEA 插件,让你开发速度飞起来!
点击上方"java大数据修炼之道",选择"设为星标" 优质文章和精品资源, 第一时间送达 来源:www.cnblogs.com/FatShallot/p/126 ...
- 这五款牛逼的 IDEA 插件,堪称代码质量检查利器!
点击关注公众号,Java干货及时送达
- 这款 IDEA 插件,检测代码漏洞,一键修复,真是太厉害了!
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...
- 【转载】十款必备牛逼的IDEA插件
IDE Features Trainer-IDEA交互式教程 RestfulToolkit-RESTful服务开发 Key Promoter X-快捷键 Presentation Assistant- ...
- idea中实体类右击没有ptg_几个牛逼的IDEA插件,Java开发者撸码神器,还带动图的!...
来源:www.cnblogs.com/jimoer/p/8799437.html 这里只是推荐一下好用的插件,具体的使用方法就不一一详细介绍了. JRebel for IntelliJ 一款热部署插件 ...
- 写代码时发现……还是Python牛逼
都说Python通俗易懂,容易上手,甚至不少网友表示「完成同一个任务,C 语言要写 1000 行代码,Java 只需要写 100 行,而 Python 可能只要 20 行」到底是真的还是假的? 下面就 ...
- 分享史上Java最牛逼,最简短的代码
Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 来源丨最代码 http://www.zuidaima ...
最新文章
- linux下修复bash漏洞
- 计算机科学班(原acm班),计算机科学创新实验班(以下简称ACM班)培养计划.doc
- docker export_docker构建python3.7镜像
- 使用Blink SQL+UDAF实现差值聚合计算
- win7如何删除mariadb
- Asterisk目录结构如下
- [读码时间] 跟随鼠标移动(大图展示)
- JavaWeb:Cookie和Session
- ios是否安装了某应用
- C#中使用Dictionary实现Map数据结构
- Bandicam一款值得被吹爆的录屏软件
- Andriod --- JetPack :LiveData setValue 和 postValue 的区别
- 1、【QT】QT6.2 官网下载与安装教程
- 2011-7-3北京李庄儿童医院看病记
- GDS中如何加logo
- 商务智能基本概念大总结
- 批处理-----2.常用特殊符号
- 曾经宣称万亿市场的智能机器人,究竟怎么了
- Pycharm安装第三方库的方法
- 【毕业设计】深度学习人体语义分割在弹幕防遮挡上的实现 - python