2026年6月9日 星期二

[研究]Mend (WhiteSource)能分辨 ASP.NET WebForm 和 MVC嗎?Fortify SAST (SCA) 、Checkmarx呢?

[研究]Mend (WhiteSource)能分辨 ASP.NET WebForm 和 MVC嗎?Fortify SAST (SCA) 、Checkmarx呢?

2026-06-09

Mend (WhiteSource) 對 ASP.NET WebForm 專案卻建議用 MVC 才有的 IsLocalUrl() 進行修改,Mend 不認得專案是 WebForm 或 MVC ? Fortify SAST (SCA) 源碼掃描可以認得 ? Checkmarx 源碼掃描可以認得 ?

*****

是的,這種情況其實很常見。

Mend(前身 WhiteSource)許多安全規則是以 Pattern Matching(模式比對) 或 Framework-Agnostic(框架無關) 的方式運作,因此有時候會出現:

  • ASP.NET WebForm 專案
  • 掃描結果卻建議使用 MVC 的 Url.IsLocalUrl()
  • 或建議使用 ASP.NET Core 的 API

這不代表程式一定有問題,而是 Mend 的 Rule Engine 偵測到「Open Redirect 風險」,然後套用了通用修復建議。

**********

Mend 是否能分辨 WebForm / MVC?

理論上可以部分辨識:

  • .aspx → WebForm
  • .cshtml → MVC/Razor
  • Controller 類別
  • Page 類別

但實務上:修補建議(Remediation Guidance)通常是共用的。

**********

Fortify SAST (SCA) 呢?

Fortify 比較強。

它有:

  • ASP.NET WebForms Rules
  • ASP.NET MVC Rules
  • ASP.NET Core Rules

能分析:

public partial class Login : System.Web.UI.Page

知道是 WebForm。

**********

Checkmarx 呢?

Checkmarx 介於兩者之間。

它的 C# Query Engine 能辨識:

  • WebForm
  • MVC
  • ASP.NET Core

**********

三者比較

項目 Mend Fortify SAST (SCA) Checkmarx
分辨 WebForm/MVC 部分 很好
Data Flow Analysis 較弱 很強 很強
Open Redirect 偵測
修補建議是否依框架調整 經常不準 通常準確 多半合理
ASP.NET WebForm 支援 基本 完整 完整
誤給 MVC API 建議 常見 少見 偶爾

**********

若 Mend 建議:Url.IsLocalUrl(returnUrl)

那幾乎可以判定:Mend 是套用了通用 Open Redirect 修補範本,沒有依據 WebForm 產生專屬修補建議。

(完)

沒有留言:

張貼留言