发现一款牛逼的 IDEA 插件:检测代码漏洞,一键修复!
发布日期:2021-06-30 12:57:37 浏览次数:2 分类:技术文章

本文共 3634 字,大约阅读时间需要 12 分钟。

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

本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。

插件提供的规则名称均以"Momo"开头。

版本支持

Intellij IDEA ( Community / Ultimate )  >= 2017.3

IDEA 香是香,可能你会说用它要收费,其实它也有开源的社区版本,收费的专业版也很容易申请到激活码,关注公众号Java技术栈,回复:IDEA,可以阅读我分享过的获取正版 IDEA 激活码的教程,很多粉丝都反馈说轻松得到了,感兴趣的都可以去申请,不能太容易了。

安装使用

IDEA插件市场搜索"immomo"安装。

效果展示

演示一:XXE漏洞发现与一键修复

插件规则

编号 规则名称 修复建议 一键修复
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

关注Java技术栈看更多干货

戳原文,获取精选面试题!

转载地址:https://javastack.blog.csdn.net/article/details/113787449 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:微信官宣:5000W个微信红包封面,可以秀一波了!!
下一篇:再见,Win 10!下一代操作系统要来了!!

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月07日 21时18分22秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章