无法修复跨站点脚本错误
Cannot fix cross-site scripting error
尽我所能用代码修复它,但 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 还没有意识到您正在这样做。
注意old browsers like IE 6/7 will ignore the the content-disposition header if they already have the response cached。您可能会检测到使用这些浏览器的情况,并阻止在这些浏览器中加载内容。
尽我所能用代码修复它,但 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 还没有意识到您正在这样做。
注意old browsers like IE 6/7 will ignore the the content-disposition header if they already have the response cached。您可能会检测到使用这些浏览器的情况,并阻止在这些浏览器中加载内容。