上一篇:再见了,收费的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

预发布打包

  1. PLUGIN_BAN_CONST=true ./gradlew --no-daemon clean build -PMOMO_CODE_SEC_INSPECTOR_ENV=pre

  2. build/distributions/*.zip 为待发布插件

预发布情况下,插件上报地址写于src/main/resources/properties/pre.properties

发布打包

  1. PLUGIN_BAN_CONST=true ./gradlew --no-daemon clean build -PMOMO_CODE_SEC_INSPECTOR_ENV=prod

  2. build/distributions/*.zip 为待发布插件

正式发布情况下,插件上报地址写于src/main/resources/properties/prod.properties

注意事项

  • 分支命名规则:

以版本号命名的分支,原则上代表支持的idea版本下限。

如branch为2018.3代表当前分支支持版本范围是>=2018.3 (或说from 183.* to *)。

插件具体支持idea版本范围见gradle.propertiesidea_since_buildidea_until_build部分。

  • 插件版本号命名规则:

原则上,插件版本号以支持的idea版本下限为大版本编号。

如插件当前版本为x.1x为开发时所用IDEA版本编号,.1为插件发布版本。

需要注意的是,因IDEA更新机制问题,插件新版本号只能向上增长

具体见gradle.propertiesplugin_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 插件:检测代码漏洞,一键修复!相关推荐

  1. 又发现一款牛逼的 API 敏捷开发工具

    来源:xie.infoq.cn/article/b5c3a339267e1351c6151b42a   初衷 跟大家分享一个牛逼的 API 敏捷开发工具,用尽可能简单的方式,完成尽可能多的需求.通过约 ...

  2. 一款牛逼的IDEA插件:检测代码漏洞

    前言 本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力. 本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件 ...

  3. 强烈推荐16 款牛逼的 IDEA 插件,让你开发速度飞起来!

    当前最新版IDEA版本是2020.1.随着IDEA版本的升级,有些插件不再支持,而有些插件变成了收费插件,这些插件将不再推荐. 以下列举的,都是亲测可以在2020.1版本的IDEA中使用的插件. go ...

  4. 14 款牛逼的 IDEA 插件,让你开发速度飞起来!

    点击上方"java大数据修炼之道",选择"设为星标" 优质文章和精品资源, 第一时间送达 来源:www.cnblogs.com/FatShallot/p/126 ...

  5. 这五款牛逼的 IDEA 插件,堪称代码质量检查利器!

    点击关注公众号,Java干货及时送达

  6. 这款 IDEA 插件,检测代码漏洞,一键修复,真是太厉害了!

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...

  7. 【转载】十款必备牛逼的IDEA插件

    IDE Features Trainer-IDEA交互式教程 RestfulToolkit-RESTful服务开发 Key Promoter X-快捷键 Presentation Assistant- ...

  8. idea中实体类右击没有ptg_几个牛逼的IDEA插件,Java开发者撸码神器,还带动图的!...

    来源:www.cnblogs.com/jimoer/p/8799437.html 这里只是推荐一下好用的插件,具体的使用方法就不一一详细介绍了. JRebel for IntelliJ 一款热部署插件 ...

  9. 写代码时发现……还是Python牛逼

    都说Python通俗易懂,容易上手,甚至不少网友表示「完成同一个任务,C 语言要写 1000 行代码,Java 只需要写 100 行,而 Python 可能只要 20 行」到底是真的还是假的? 下面就 ...

  10. 分享史上Java最牛逼,最简短的代码

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 来源丨最代码 http://www.zuidaima ...

最新文章

  1. linux下修复bash漏洞
  2. 计算机科学班(原acm班),计算机科学创新实验班(以下简称ACM班)培养计划.doc
  3. docker export_docker构建python3.7镜像
  4. 使用Blink SQL+UDAF实现差值聚合计算
  5. win7如何删除mariadb
  6. Asterisk目录结构如下
  7. [读码时间] 跟随鼠标移动(大图展示)
  8. JavaWeb:Cookie和Session
  9. ios是否安装了某应用
  10. C#中使用Dictionary实现Map数据结构
  11. Bandicam一款值得被吹爆的录屏软件
  12. Andriod --- JetPack :LiveData setValue 和 postValue 的区别
  13. 1、【QT】QT6.2 官网下载与安装教程
  14. 2011-7-3北京李庄儿童医院看病记
  15. GDS中如何加logo
  16. 商务智能基本概念大总结
  17. 批处理-----2.常用特殊符号
  18. 曾经宣称万亿市场的智能机器人,究竟怎么了
  19. Pycharm安装第三方库的方法
  20. 【毕业设计】深度学习人体语义分割在弹幕防遮挡上的实现 - python

热门文章

  1. MatLab数字图像处理实战(赵小川)-sift原理
  2. 太阳光是平行光吗_百思 | 太阳光是不是平行光?
  3. android 音频文件下载
  4. YAML文件格式详解
  5. 看Spring实战有感(一)
  6. ORL Face94 LFW
  7. ENVI学习总结(十二)——基于改进的 CASA 模型反演 NPP
  8. 基于JavaMail的Java邮件发送:简单邮件发送
  9. 2016年计算机辅助设计试题,cad考试题「附答案」
  10. vue:ali 阿里矢量图库 ico