本插件做爲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/mom...
近期熱文推薦:
1.Java 15 正式發佈, 14 個新特性,刷新你的認知!!
2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!
3.我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看。。
以爲不錯,別忘了隨手點贊+轉發哦!