强化文件中的跨站脚本

2024-06-20

我在控制器中有以下代码。 参数 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(使用前将#替换为@)

强化文件中的跨站脚本 的相关文章

  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 在没有默认 java.policy 文件的情况下运行 Java 安全管理器

    我不想修改 java 主目录中的任何内容 但是 我担心有时我的默认 java policy 文件可能过于宽松 当我使用以下命令运行 java 时 有没有办法使用指定的策略文件作为唯一的策略文件 Djava security manager
  • SSL 和会话劫持/固定

    快问 SSL 是否完全防止会话劫持 固定 谢谢 不可以 例如 在以下情况下可能会发生劫持 被黑客入侵的 CA 根签署无效证书 该证书可用于发起中间人攻击 被黑客攻击的域名所有者电子邮件收件箱使黑客有可能购买经过域名验证的证书 错误的密钥策略
  • 保护 REST 和 JSON

    我想利用 RESTful 架构构建提供 JSON 数据的 Web 服务 但我只想要我自己的客户端应用程序可以从我的网络服务请求 基本上 我的 Web 服务包含不供公众使用的敏感数据 但我想以这种方式构建它 以便我可以构建连接到我的 Web
  • JavaScript 访问密码字段值是否被视为存在安全风险?

    如果安全 正确地存储密码是良好的风格和安全性 那么对于要求用户输入密码的网页来说不应该也是如此吗 考虑这个例子
  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的
  • 服务层和存储库

    我使用 MVC 框架已经有一段时间了 我真的很喜欢如何分离关注点 我养成了让控制器做大量工作的坏习惯 所以我真的在寻求一些建议 当我第一次开始使用 MVC 时 我经常在数据库工作完成后让控制器对模型进行操作 我知道这很糟糕 所以将这项工作转
  • 检测、更改或删除现有的突变观察者

    如果某个 JS 添加了突变观察者 其他 JS 是否可以检测 删除 替换或更改该观察者 我担心的是 如果某些 JS 的目的是破坏某些 DOM 元素而不被发现 那么 JS 可能希望摆脱监视该 DOM 元素的任何观察者 我不确定是否检测是否已安装
  • 如何让用户以 root 权限运行脚本?

    鉴于SUID shell 脚本的危险 http www drdobbs com dangers of suid shell scripts 199101190 是否有更安全的方法可以在 Linux 中以 root 权限对脚本 bash PH
  • 在 PHP 中渲染视图

    我正在编写自己的 MVC 框架 并已涉及视图渲染器 我将控制器中的变量设置为 View 对象 然后通过 phtml 脚本中的 echo this gt myvar 访问变量 在我的 default phtml 中 我调用方法 this gt
  • 如果我将 ValidateRequest 设置为 false 不是很危险吗?

    我在我的 asp net 项目的一些 Web 表单中使用 FreeTextBox HTML 编辑器 如果我不将 ValidateRequest 属性设置为 false 我会收到此错误 从客户端检测到潜在危险的 Request Form 值
  • 通过 Phonegap 使用 SSL 和证书连接到 Web 服务器

    这就是关于基于 JS 构建的 Phonegap Android 和 iOS 应用程序的全部内容 我们有一个服务器 方法如下 授权 登录 通过 返回certificate p12文件 PKCS 12 服务器也有方法 需要使用该证书进行授权 R
  • 多对多关系中的模型结构

    例如 如果我的数据库中有以下表格 并且学生和课程具有多对多关系 Student Id Primary Key FirstName LastName Course Id Primary Key Title StudentCourse Stud
  • 对多个 Maven 项目运行 Fortify 扫描

    我有多个项目由单个父 pom 绑定 如果我使用 Maven fortify 插件在父 pom 上运行 fortify 扫描 则会生成每个项目的 fpr 文件 我希望为所有项目生成一个 fpr 文件 是否可以 感谢致敬 绍拉夫 您想要做的是聚
  • 阻止跨域调用 asp.net .asmx Web 服务

    我构建了一个应用程序 它使用 jQuery 和 JSON 来使用 ASP NET asmx Web 服务来执行增删改查操作 应用程序和 asmx 位于同一域中 我不介意人们远程消耗 asmx 的读取操作 但不希望人们随机删除内容 我可以将我
  • PHP 中的 MD5 替代方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Zend Framework 中数据库驱动路由的教程?

    我正在开发一个需要使用数据库驱动的 MVC 方案的项目 其中控制器和视图的路由通过单个数据库表进行控制 但是 我无法找到任何使用当前版本的框架演示这一点的教程 它们似乎都是在几个版本之前编写的 我想知道是否有人用更新的版本做过类似的事情框架
  • 从 java 反射中隐藏我的安全密钥

    下面的类是我用于加密的安全密钥提供程序 public class MySecretKey private String key 2sfdsdf7787fgrtdfg cj5 Some Util methods goes on Here 首先
  • 为什么我应该使用 $_GET 和 $_POST 而不是 $_REQUEST? [复制]

    这个问题在这里已经有答案了 除此之外 REQUEST从 cookie 读取 有什么理由我应该使用 GET and POST代替 REQUEST 这样做的理论和实践理由是什么 当我只想让用户的某些数据返回某些数据时 我使用 REQUEST 当
  • 是否应该用于 JSF 2.2 CSRF 保护?

    我很困惑 我看到 JSF 2 0 有隐式 CSRF 保护 JSF 2 0 如何防止 CSRF https stackoverflow com questions 8704612 how jsf 2 0 prevents csrf 根据文章的

随机推荐

  • 有没有办法使用 Python Pandas 读取所有行,直到遇到空行

    我在 Excel 中有很多行 并且这些行在空行之后填充有垃圾值 有没有办法使用 Python pandas 只读取 Excel 中第一个空行之前的记录 我不知道 read excel 是否可以做到这一点 如果您从 Excel 导入空行 这些
  • 如何为单集群(独立集群)ElasticSearch 配置单节点

    我在本地计算机上安装了elasticsearch 我想将其配置为集群中唯一的一个节点 独立服务器 这意味着每当我创建新索引时 它只能用于我的服务器 它将无法被其他人的服务器访问 我当前的情况是 这些索引可供其他服务器使用 这些服务器形成在集
  • 限制特定用户对特定资源的点到站点 Azure VPN 访问

    有没有办法限制某些点到站点用户对 Azure 资源的访问 例如 我希望允许 P2S VPN 用户可以访问一台虚拟机但不能访问另一台虚拟机 或者允许访问一个子网但不能访问其他子网 现在看来 一旦您进入 您就可以享受 VNET 可以访问的所有内
  • virtualenv:错误:需要以下参数:dest

    我无法在我的 macbook pro 上安装和配置 python3 虚拟环境 我试图为我的下一个项目安装并尝试 django 但这里开始出现问题 在目录中安装虚拟环境 在主目录root中添加以下命令来创建环境 python3 m venv
  • 使用外部存储,删除文件夹时出错

    我正在使用 docker nextcloud 我创建了一个干净的实例 我想使用应用程序外部存储 我设法使用以下命令成功配置本地存储 mount id docker exec user 1000 nextcloud php occ files
  • SQLite中的ROWID是自动设置的吗?

    所以 我在 Ionic 上有这个应用程序 它使用SQLite ngCordova 插件 https github com litehelpers Cordova sqlite storage用于内部存储 在其上 我使用以下命令创建一个表 d
  • 更改 django 中的项目名称

    我将 django 项目的名称从oldname to newname使用 Pycharm 的重构 gt 重命名 我翻遍了这个项目 似乎到处都改了名字 但是当我尝试 runserver 时 这就是我得到的 Traceback most rec
  • 如何测试 httpOnly cookie 标志

    我在 websphere 中为 jsessionid cookie 设置了以下属性com ibm ws webcontainer HTTPOnlyCookies 知道如何在 Firefox 或 IE 中使用 JavaScript 进行最佳测
  • 伊德里斯统一意外失败

    我正在尝试在 Idris 中创建一个所谓的可判定解析器 起初我只是想解析自然数 但遇到了一个意想不到的问题 生成它的代码的最小示例如下 data Digit Char gt Type where Zero Digit 0 One Digit
  • 游戏如何制作火焰和烟雾效果? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在互联网上搜索了有关粒子系统和火焰
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • 如何记录函数可能抛出的所有异常?

    如果您有一个可能引发异常的公共函数 该函数使用其他 私有或公共 辅助函数也可能引发异常 我认为您应该记录公共函数可以引发哪些异常这包括辅助函数抛出的异常 像这样 使用 Doxygen throw Exception throw Except
  • 设置asp.net验证器的顺序

    我使用 3 个验证器来验证文本框 但当在文本框中输入无效值时 所有验证器都会被触发 但我希望这些验证器按照特定的顺序工作 以便用户可以一一解决这些错误
  • 暂时禁用提交按钮

    我有一个将大文件上传到服务器的表单 像这样的事情
  • Flask-Admin 具有多对多关系中的附加字段

    我有两个表 产品 成分 和 产品成分 class ProductIngredient db Model tablename product ingredient id db Column db Integer primary key Tru
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • PyCharm 中有 HTML 块 {%%} 的快捷方式吗?

    我正在使用 HTML 块 例如 block content 经常使用 但必须输入括号和百分比符号很麻烦 有没有捷径或其他方法可以自动执行此操作 到目前为止我刚刚发现这个 PyCharm 中有插入 的快捷方式吗 https stackover
  • rake db:migrate db:reset 和 db:schema:load 之间的区别

    和 之间的不同rake db migrate and rake db reset我很清楚 我不明白的是如何rake db schema load与前两者不同 只是为了确保我在同一页面上 rake db migrate 运行尚未运行的迁移 r
  • Android:如何在播放媒体(mp3)时在特定毫秒内显示文本

    我正在尝试做一个类似卡拉 OK 的应用程序 我想在某一毫秒到来时显示一个或多个单词 例如 1148 毫秒 gt 打印 尼古拉斯 1826 毫秒 gt 打印 是 2766 毫秒 gt 打印 旧 ms gt 显示 这是我的代码 包 com ex
  • 强化文件中的跨站脚本

    我在控制器中有以下代码 参数 base64String fileName 是从浏览器发送的 var fileContent Convert FromBase64String base64String return File fileCont