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