代码分析根治重复处理“无需处理”或“误报” #494
Unanswered
zhang9w0v5
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
代码分析发现了一些代码行有问题时,如果问题中出现“无需处理”或“误报”,则需要告知工具某规则需要过滤该行代码。
现实中代码易扩散到众分支或不同仓库,甚至文件系统以及其他代码管理仓。如在系统中配置代码行过滤,则难以跟踪管理,且与系统耦合,脱离系统后代码中无感知,丢失全部信息。
部分项目偶尔会调整工程结构,路径或文件名发生较大变更,那么系统中的配置会失效,问题再次暴露,需要再次在系统上处理过滤。
工具误报原因:
一系列工具在静态不运行代码的情况下,缺少动态参数和逻辑,已知推测类规则会有误报,需要熟悉业务逻辑者确认。
例如代码中的一些关键密钥,技术上无法区分属于真实生产或调试或演示所用,需要熟悉业务者确认。
例如与IP地址结构一样的版本号被误报为IP地址等等。
综上,需要业务开发人员进行CodeReview确认,如果单纯使用工具系统标注,可能会多次出现重复操作“无需处理”或“误报”。
彻底根治重复操作的方法如下:
一、代码注释忽略问题
对某处代码进行针对性忽略。设置成功后,该规则对此处无效,不影响其他代码扫描结果。
注释格式:// NOCA:规则名称(忽略原因)
示例:// NOCA:DirtyWord(设计如此:该语境下不是脏字)
二、使用 .code.yml 过滤文件问题
针对某文件或某路径进行过滤设置,使扫描对其无效。
详情参见:.code.yml 过滤参考文档
注意1:以上两种方式设置后,工具系统需重新扫描后生效;其中.code.yml方式需要全量扫描后生效。
注意2:以上两种方式如同签字盖章,请勿轻易放过安全隐患类问题。
Beta Was this translation helpful? Give feedback.
All reactions