我在service.ts文件中有以下代码,VeraCode代码扫描失败
CWE ID的缺陷:URL重定向到不受信任的网站("打开重定向"((CWE ID 601((16个缺陷(描述web应用程序接受指定指向外部网站的链接的不受信任的输入,并使用该链接生成重定向。这使得网络钓鱼攻击成为可能。
请帮我修复这个
服务.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就不会将其检测为安全缺陷。