URL 重定向到不受信任的站点

URL Redirection to Untrusted Site

我在 service.ts 文件中有以下代码,但 VeraCode 代码扫描失败

CWE ID 的缺陷: URL 重定向到不受信任的站点 ('Open Redirect') (CWE ID 601)(16 个缺陷) 描述 Web 应用程序接受不受信任的输入,该输入将 link 指定为外部站点,并使用该 link 生成重定向。这会启用网络钓鱼攻击。

请帮我解决这个问题

Service.ts:

public exportReviews(searchReviewData: SurveillanceReviewSearchViewModel): Observable<SurveillanceReviewSearchViewModel> {
    this._urlSurveillanceDetails = this.baseHref +"/ReviewProfile/ExportReviews";
    const headers: HttpHeaders = new HttpHeaders();
    headers.append('Content-Type', 'application/json');
    return this.http.post<SurveillanceReviewSearchViewModel>(this._urlSurveillanceDetails, searchReviewData, { headers: headers }); // flaw identified on this line
  }

public getReviewsBySearchSessionId(searchsessionId): Observable<SurveillanceReviewSearchViewModel> {
    this._urlSurveillanceDetails = this.baseHref + "/ReviewProfile/SearchReviewsBySessionId" + '?searchsessionId=' + searchsessionId;
    var headers = new HttpHeaders();
    headers.append('Content-Type', 'application/json');
    this._urlSurveillanceDetails = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(this._urlSurveillanceDetails));
    return this.http.post<SurveillanceReviewSearchViewModel>(this._urlSurveillanceDetails, headers); // flaw identified on this line
  }

这是误报。请求 url 不是根据不受信任的用户输入或一般用户输入构建的。静态代码分析并不完美,您会到处遇到误报。

您可以使用 encodeURI() 方法对在 CWE-601 下检测到的参数进行编码,它可能像其他人提到的那样是误报,但是 encodeURI() 包装了参数,因此 Veracode 无法检测到它作为安全漏洞。