我已將 Checkmarx 掃描工具與 Azure DevOps 管道集成。運行 ASP.Net Core Web API 相關管道后,我得到了高風險結果。我嘗試了多種方法并運行管道。現在仍然沒有運氣。你能幫我解決這個問題嗎?
C#代碼:
Uri requestUri = new Uri("https://webapi.com/token");
HttpContent httpContent = new StringContent(System.Text.Json.JsonSerializer.Serialize(new { access_token = accessToken }), Encoding.UTF8, "application/json");
var result = await client.PostAsync(requestUri, httpContent);
if (result != null && result.IsSuccessStatusCode)
{
var content = await result.Content.ReadAsStreamAsync();
var authResponse = await System.Text.Json.JsonSerializer.DeserializeAsync<TokenResponse>(content);
var authToken = authResponse.AuthenticationToken;
}
令牌回應.cs:
class TokenResponse
{
public string AuthenticationToken { get; set; }
}
錯誤資訊:
第 42 行檔案中異步處理的序列化物件 PostAsync 被第 46 行檔案中的 DeserializeAsync 反序列化。
uj5u.com熱心網友回復:
Checkmarx 不將 JsonSerializer 識別為安全的反序列化器。您將不得不覆寫 Checkmarx 查詢以使用 Checkmarx CxAudit 將 JsonSerializer 作為消毒劑之一,或者如果您沒有 CxAudit,您將不得不與您的 AppSec 團隊爭論這應該根據 System.Text 標記為不可利用。 Json 威脅模型:
減輕
JsonSerializer 默認不支持System.Type 實體的序列化和反序列化。可以實作自定義轉換器來處理 System.Type 實體,但應注意避免處理不受信任的資料。
https://github.com/dotnet/runtime/blob/main/src/libraries/System.Text.Json/docs/ThreatModel.md
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/424278.html
