无法修复跨站点脚本错误

时间:2015-08-28 20:34:29

标签: c# xss veracode

使用代码完成我所能修复的所有内容,但Veracode仍然为以下代码提供错误:

Byte[] bytes = (Byte[])dt.Rows[i]["Content"];
Response.Buffer = true;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = StringEncode(HttpUtility.HtmlEncode(dt.Rows[i]["Extension"].ToString()));
Response.AddHeader("content-disposition", "attachment;filename=" + StringEncode(HttpUtility.HtmlEncode(dt.Rows[0]["FileName"].ToString())));
Response.BinaryWrite(bytes);
Response.Flush(); 
Response.End();

它指向Response.BinaryWrite(bytes);

的行

该怎么办? 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我认为当您的用户使用现代浏览器时,您可以安全地将此标记为误报。

设置内容处置以将响应作为附件下载应该可以防止在浏览器中执行任何脚本。 Veracode似乎没有意识到你正在这样做。

请注意old browsers like IE 6/7 will ignore the the content-disposition header if they already have the response cached。您可以检测使用这些浏览器时的情况,并阻止在这些浏览器中加载内容。