通过HP Fortify扫描时,我有以下代码,在以下行显示XSS问题:Response.BinaryWrite(buffer);
我该如何解决Fortify指出的XSS问题?
void ShowPDF(string infilepath)
{
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(infilepath);
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.AddHeader("content-disposition","attachment; filename=hearingprep.pdf");
Response.BinaryWrite(buffer);
}
任何帮助将不胜感激。
答案 0 :(得分:0)
Fortify所说的是您将 不受信任 的内容放入浏览器。
执行BinaryWrite(buffer)
时。 Fortify触发的规则可能是因为您直接使用来自buffer
(来自不受信任来源)的DownloadData
。
infilepath
上的代码中添加清理功能,然后看看会发生什么。 Byte[] buffer
中添加消毒剂,那么这应该可以彻底解决Fortify造成的伤口。 如果您不能执行2.,则应该准备真正拥有XSS。
答案 1 :(得分:0)
提出该问题为误报,并确保传入的文件位置为受信任位置。