JetBrains程序代码品质检查工具Qodana现可对PHP程序代码进行污点分析

JetBrains在程序代码品质检查工具Qodana,加入PHP程序代码污点分析(Taint Analysis)功能,Qodana现在能够找出PHP程序代码中存在的SQL注入或是跨站脚本攻击等问题,协助开发者编写更安全的程序代码。

由JetBrains所开发的程序代码品质检查工具Qodana,能够在用户的持续集成工具中,提供服务器端静态分析功能,Qodana能够在持续集成环境,提供与PhpStorm和其他JetBrains IDE相同的程序代码品质检查功能。

程序代码的污点,指得是经外部用户修改的输入值,可能对程序代码产生安全风险,因此当程序存在污点,且允许使用未经验证的输入资料,则恶意攻击者便能够通过执行恶意程序代码片段,进行SQL注入、算术溢出、跨站脚本和路径走访攻击,进而完成破坏系统、窃取凭证,或是改变系统行为等目的。

因此在审查程序代码时进行污点分析,便能够额外提高程序代码的安全性,污点分析则是评估不受信任的用户输入,在函数和方法间传递的过程,目的是要避免因为意料之外的输入,对程序执行造成的影响。

过去开发者可以手动进行污点分析,找出所有接收外部用户输入的地方,并且关注所有资料传递过程,主要防止污点传播的方法有两个,第一是清理资料,将资料转换成更安全的状态,第二则是验证资料,检查资料符合所需模式与否。

而在Qodana for PHP 2023.1 EAP中加入的污点分析预览功能,能够在污点源头,也就是资料接受器关注资料,以及在使用该资料,却未经清理和验证时发出警示。污点分析能够扫描程序代码,并且突出显示存在污点以及具有潜在漏洞的程序代码,开发者能够以PhpStorm打开问题,可视化查看污点资料流,并且进行修改。

官方表示,Qodana for PHP是他们发布的第一个Linter,现在开放PHP开发者测试使用,待他们收集更多反馈后,会计划添加更多语言的污点分析。