我在控制器中有以下代码。
参数 base64String、fileName 是从浏览器发送的。
var fileContent = Convert.FromBase64String(base64String);
return File(fileContent, contentType, fileName);
我该如何解决这里的 XSS 威胁?
上面的代码基于此处推荐的修复Kendo UI 网格导出到 Excel/PDF 不适用于 IE9 https://stackoverflow.com/questions/27784824/kendo-ui-grid-export-to-excel-pdf-not-working-on-ie9
我假设您不会将 HTML 返回给用户(您将返回 PDF 或 Excel 文件,或其他内容以供浏览器下载而不是用于渲染)。
一般准则如下:
设置正确的Content-Type
header.
设置以下响应头:X-Content-Type-Options: nosniff
。浏览器如Internet Explorer 将尝试自动检测内容类型 http://labs.detectify.com/private/109881869381/tumblr_nj5i3t5b101tqlxa5并忽略您刚刚设置的那个。
Set the Content-Disposition
标头,以便浏览器下载文件而不是显示它:Content-Disposition: attachment; filename="bar.pdf"
遵循上述步骤应确保您的浏览器不会执行文件中包含的任何脚本代码。意识到IE(再次!)有时可以处理 XML 文件中的脚本 http://webstersprodigy.net/2012/02/04/serving-back-xml-for-xss/,所以你应该对此进行测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)