我正在使用通过应用程序安全性的软件,该软件指示行代码“可能不安全”。
给定以下代码,应用程序将对outputStream.write()
行进行签名,以指责网页中与脚本相关的HTML标签的不正确中和
response.addHeader("Content-Disposition","attachment; filename=" + Util.NeutralizeFileName(filename));
byte[] bytes = obj_Data.getBytes("File");
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
实际上,我不是在编写html页面,而是在下载文件。并且所有数据在转换为字节之前都将得到验证和中和。
所以,我的问题是:这是错误的警告吗?如果没有,我该怎么做才能正确验证?
最佳答案
用户仍然可以选择在浏览器中打开文件。例如,在IE中,用户经常会看到一个对话框,在该对话框中,他/她可以在“取消”,“保存”和“打开”之间进行选择,其中“打开”将在当前选项卡中打开。您可以通过使用标头禁用打开。这是否容易受到xss的影响还取决于内容类型。是HTML吗?