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開發者測試使用,待他們收集更多回饋後,會計畫添加更多語言的污點分析。

熱門新聞

Advertisement