Facebook工程师维护、数千人审阅、数百万人使用的React,可能是全球最受关注的开源项目之一。它拥有超过22万个GitHub星标,代码被层层把关。但一个自动化工具只花了24秒,就从中找出了20个需要人工复查的潜在问题。
这事发生在今年5月。安全扫描平台RepoSignal对React主分支进行了一次完整扫描,结果返回16个高危、4个中危发现。全部指向真实代码位置,全部对应可识别的风险模式。值得注意的是,这些不是误报——每个发现都需要人去看一眼,判断在具体执行环境下是否真的构成威胁。
![]()
为什么连React都会有"漏网之鱼"?答案恰恰在于人和机器的分工不同。人类审代码,看的是架构设计、业务逻辑、API合理性和性能表现。没人能在每次提交时,把40万行代码、十几个包里每一个eval()调用都系统性地过一遍。但静态分析工具就是干这个的。
React里的eval()大多出现在编译工具和开发者调试面板里,属于开发环境的基础设施,不是直接跑在用户浏览器里的生产代码。很多可能是故意为之、受控使用的。扫描器的工作是把这个模式揪出来,因为eval()处理不可信输入确实是经典的代码执行漏洞路径。至于这里能不能真的被利用,那是人要做的事。
静态扫描本身预测不了代码会不会崩。RepoSignal的做法是把扫描结果和仓库自己的历史修正记录挂钩——有些PR看起来毫无安全问题,但以前类似的改动在这个代码库里就是出过事。这种基于实证的风险评分,是扫描器和人工审阅之外的一层补充。
![]()
简单说:机器扫模式,人判断上下文,历史数据补盲区。三者各司其职,才是大规模代码审查能跑通的姿势。React这次被"挑刺",恰恰说明这套分工有必要——而不是说它的工程师不行。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.