无法修复跨站点脚本错误
本文关键字:站点 脚本错误 | 更新日期: 2023-09-27 18:10:22
尽我所能用代码来修复它,但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);
应该怎么做?有什么建议吗?
我认为当你的用户使用现代浏览器时,你可以安全地将此标记为误报。
将内容配置设置为将响应下载为附件应该可以防止在浏览器中执行任何脚本。Veracode似乎没有发现您正在这样做的事实。
请注意,像IE 6/7这样的旧浏览器如果已经缓存了响应,就会忽略content-disposition报头。当使用这些浏览器时,您可能会检测到这些情况,并阻止内容在这些浏览器中加载。