我工作的地方非常重视代码安全性,以至于我们每次发布产品之前都要经过安全检查。不幸的是,我们有超过一百万的LOC,因此这些工作变得非常痛苦。
为清楚起见,有时我们会以这种方式检查代码:
find . -regex '.*\.java\|.*\.jsp'|xargs egrep -inr "(?:SAXParser|SAXParserFactory|DocumentBuilderFactory|TransformerFactory|XMLReader|DOMParser)"|tee ../result_xml.file
我计划对这些result_xxx.file进行排序,下次在排除相同的find命令时,我们可以对这两个文件进行排序和比较,并提取这些新的错误代码。但它很糟糕。
由于我们使用的是git,而且我们的大部分代码都是Java和JavaScript,我想知道是否有一种方法可以收集新添加或修改的代码,因为我们上次完成了详细检查(使用git标签)
git log --code --since #lastTag
git log --code --between #thisTag #thatTag
我搜索了这个,但没有得到任何有用的信息。谁有更好的想法? 谢谢。
答案 0 :(得分:0)
我提出了一个想法,我们可以使用git web hook功能吗?最近我完成了一个基于git web hook功能的插件。每次我们推送或提出合并请求时,插件(为Intellij Idea开发)都会执行通知。但问题是,git web hook接口提供了json字符串但我无法在其中找到代码。无论如何,我可以得到我们提交的代码吗?
我找到了一个有用的命令:
git log -p
对不起,我很少直接使用命令,因为Idea可以很好地使用git。
命令git log
也支持--since
功能,后面可以跟一个时间参数。还有两件事要做:
git log -p
并获取添加或修改的行,可以通过检查行开头的内容来完成。time
添加到git log命令,如:
git log --since lastTime -p
通过这种方式,我们可以逐步扫描代码。很多细节需要澄清,有工作要做......