Data Flow Analysis
追踪代码中某个值从产生到经过、再到最终使用的完整路径,以此发现问题的分析方法
简单来说
数据流分析是一种从头到尾追踪程序中某个值的移动路径的分析方法:它在哪里产生,经过了哪些环节,最终又在哪里被使用。
这有点像沿着一条河从源头追到入海口,检查途中是否混入了污染源。在代码里,就是追踪用户输入的值依次经过哪个函数、哪个函数,最终在屏幕显示或存入存储时是如何被使用的,并留意途中是否存在危险值未经过滤就直接流入下一环节的地方。
这种方式能揭示只看单个文件很难发现的问题。比如从A文件接收的值传给B文件的函数,又在C文件中被直接执行,这种问题如果分别查看每个文件很容易漏掉,但只要把值的流动路径追踪到底就会显露出来。
在报道中是这样出现的
文章提到,Claude Security 的新模型'不是逐个单独查看文件,而是追踪文件之间流动的数据流,推断各组件之间如何相互作用'。这里容易产生的误解是,认为这是AI首创的全新技术,但数据流分析本身是早已存在的代码分析方法,这次的新之处在于让AI模型来代替人工执行这项分析。
亲手试一试
粘贴一段代码,像下面这样提问,就能让AI做类似数据流分析的工作:
"请按顺序追踪这段代码中用户输入的值依次经过了哪些函数,最终被用在什么地方。如果中间有值未经验证就被直接传递下去的环节,请指出来。"
