1: 代码审计的java工程编译问题
在代码审计中,你会发现有些工程的依赖jar包不完整或者物理隔离导致的java工程无法编译
最好的办法就是找到编译通过的开发工程师把他的maven仓库完整的复制过来
删掉里面所有的
_remote.repositories
这个文件(别问为什么,就这么干)
然后使用命令
mvn -o clean install
-o 这个参数代表离线模式,可以保证只在本地的maven仓库进行查找依赖
这样就能保证编译通过了
2:代码审计的问题管理和追溯问题
代码审计必须追溯到人,也就是代码最后提交人,只有这样才能保证代码的持续改进,之前遇到过由项目组组长管理代码改进,一旦出现项目进度很赶,账号公用,最终项目的修改人就会出现混乱,互相推诿扯皮。
gitlab的代码提交人是依照邮箱为追溯标准的
首先打开git gui的选项
关注一个如下图的地方一个就是编码要改成utf8 还有就是gitlab所记录的提交人以邮箱为准:
这里的邮箱也就是命令行里面的
git config --global user.email "zhangsan2@qq.com.cn"
gitlab中记录的代码提交人与控制面板中的凭据管理器中的凭据是无关的
然后用自动化的代码审计工具进行分析后,就能把问题定责到个人,保证代码审计的落地。
但是同时在开发过程中要注意一个细节:
如下图参照gitlab在合并代码的时候不要选择合并提交, 如果合并提交的话代码提交人会变成合并人的身份,导致代码实际提交人的记录无法追溯
3. git几个要统一化的参数避免隐蔽的坑
# 保证长文件名可用
git config --global core.longpaths true
# 使用core.autocrlf 保证不同操作系统的换行符号兼容性
# 参考地址 https://blog.csdn.net/asahinokawa/article/details/85988837
# ide能自适应换行符 所以最好把代码的换行进行统一化
git config --global core.autocrlf input