处理 ASP.NET MVC 中的 JavaScript 注入

2023-12-11

我们如何处理 asp.net mvc (C#) 应用程序中的 javascript 注入?

我可以在我的视图中使用 Html.Encode 。但问题是我也有 html 可以像博客文章一样显示在页面中。

我需要删除在应用程序的输入元素中输入的脚本?我怎样才能在公共场所做到这一点?


执行此操作的“高级”最佳实践是:

  • 按照输入系统的方式存储用户输入
  • HTML 在任何页面上输出时对所有用户输入进行编码
  • 使用白名单方法对您在上一步中编码的允许的 HTML 字符、属性、属性值等进行“反编码”

对输出上的用户输入进行 HTML 编码将阻止 JavaScript 在您的网站上执行。

您想要“按输入形式”存储用户输入的原因是因为您将来可能决定以其他格式(PDF、电子邮件、JavaScript、RSS 等)输出用户数据,这些格式不具有相同的编码规则。因此,您应该使数据尽可能接近其原始形式。这将使以后的事情处理起来更容易。

对于 HTML 编码用户输入,您可以使用System.Web.HttpUtility.HtmlEncode(...).

要结合步骤 2 和 3,您可以使用 MicrosoftAntiXSS 库。它提供了一些 HttpUtility 类未提供的额外编码方法,以使您的工作更轻松。直到马尔科姆在评论中指出,我才意识到该库的最新版本包含一个名为GetSafeHtmlFragment(...)这将手动删除所有 JavaScript。这将为您处理删除用户输入的 JavaScript 代码的所有繁重工作。您很可能想使用GetSafeHtmlFragment and not GetSafeHtml,旨在对整个 HTML 文档进行编码。

小注意事项:如果您发现功能未按预期工作,请阅读最新 AntiXss 版本(撰写本文时为 2012 年 1 月)的评论。您可能需要根据需要考虑使用旧版本,但请注意旧版本存在已知的安全缺陷。微软已经承认了这个问题并正在寻找解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理 ASP.NET MVC 中的 JavaScript 注入 的相关文章

  • 使用按钮在 aspx.cs 上调用 JavaScript 函数(以 aspx 形式)

    我有这个aspx div div
  • 当列表包含图像时,React Native FlatList 感觉很慢

    我为 avater 使用 64x64 图像 它的尺寸非常小 通过我的应用程序 滚动时帧率下降至 25 35 fps 如何优化 flatList 图像
  • Orchard 中最近博客文章的自定义视图

    我已经搜索并尝试了 2 天来更改主页上显示的 RecentBlogPosts 内容类型的视图 我想显示帖子的标题和短语 我设法找到一个显示每个帖子标题的视图 但我还没有弄清楚模型中其他部分的名称或如何提取文本 非常感谢您的帮助 using
  • .getDay() 奇怪的行为[重复]

    这个问题在这里已经有答案了 有一个例子 console log new Date 2013 02 24 getDay 24 gt 0 24 console log new Date 2013 02 25 getDay 25 gt 1 25
  • IDependencyResolver 是反模式吗?

    我正在对旧版 ASP NET 应用程序进行一些架构更改 我模拟了 ASP NET MVC 的 IDependencyResolver 为依赖解析创建了一些类的原型 我不会发布 因为它的界面几乎相同 但采用其他自然语言 我发现它可能被认为是服
  • Internet Explorer 的数组indexOf 实现

    有很多关于如何将 indexOf 实现放入数组原型中以便它可以在 Internet Explorer 下工作的解决方案 但是我偶然发现了一个问题 到目前为止我所看到的任何地方似乎都没有解决这个问题 使用非常一致的MDC 的实施 https
  • 如何从回调函数中获取值

    我对 javascript 比较陌生 并且面临一些困难 我有两个 java 脚本文件 如下所示 我无法获取变量的值条目标题在 getRss 函数内并将其存储在变量内Rss1 标题 and Rss2 标题 创建一个全局变量并将其分配给条目标题
  • 为什么这些 Javascript for 循环在 Firefox 上比 Chrome / Safari 上慢得多?

    我在搞基准网站jfprefs http jsperf com 并创建了我自己的基准http jsperf com prefix or postfix increment 9 http jsperf com prefix or postfix
  • navigator.platform 在 ARM Mac 上的价值是什么?

    苹果有released https www apple com apple events november 2020 几款基于采用 ARM 架构的 M1 芯片的新计算机 与之前基于 x86 架构的计算机相比 的价值是多少navigator
  • 所有属性的 JavaScript getter

    长话短说 我现在的情况是想要一个 PHP 风格的 getter 但是是 JavaScript 的 我的 JavaScript 仅在 Firefox 中运行 因此 Mozilla 特定的 JS 对我来说没问题 我能找到的制作 JS gette
  • 与玻璃钢战斗

    我读过有关 FRP 的内容 非常兴奋 它看起来很棒 因此您可以编写更多高级代码 并且一切都更加可组合 等等 然后我尝试用数百个 sloc 从纯 js 到 Bacon 重写我自己的小游戏 我发现 我实际上不是编写高级纯逻辑代码 而是击败了 B
  • 更改导航栏悬停时 div 的背景图像

    我正在开发一个项目 我对 Javascript 很陌生 所以我想知道是否有 Jquery 代码或只是一个关于如何使背景图像在导航菜单悬停时更改的过程 例如将鼠标悬停在链接一上会将 div 的背景图像更改为图像 1 将鼠标悬停在链接二上会将
  • 调整发散堆积条形图以使用通用更新模式

    我一直在使用可用的堆积条形图示例here https bl ocks org mbostock b5935342c6d21928111928401e2c8608使用以下代码 var data month Q1 2016 apples 384
  • 如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

    我正在使用一个网络应用程序工作Spring MVC 我试图在提交表单之前显示一个确认对话框Bootbox 但我收到 500 内部服务器错误 这是我的表格
  • 为什么 `BehaviorSubject` 不发出最后一个值

    The 关于BehaviorSubject的文档 http reactivex io documentation subject html声明它应该返回最后发出的值 无论我何时订阅 但它不会为我返回它 const ofObservable
  • 将回调函数与原型函数一起使用

    在执行回调时 我无法弄清楚如何传递对象方法而不是排序 通用原型 方法 function Client this name hello Client prototype apiCall function method params callb
  • 同步通用分析

    新的Universal Analytics重新引入了同步事件跟踪 https developers google com analytics devguides collection analyticsjs method reference
  • 是否可以阻止在每个 HTTP 请求中发送 cookie?

    我最近发现 这里 每个网络请求都会发送浏览器cookie吗 https stackoverflow com questions 1336126 does every web request send the browser cookies
  • 内联 YouTube 视频在 iOS 上的 cordova 应用程序中不起作用

    我用 cordova 开发了一个移动应用程序 我确实需要能够播放内联 YouTube 视频 我尝试了一段时间来解决它 我设置了属性playsinline to 1在 YouTube iframe API 中 I put
  • JavaScript 反静默技术来指示失败

    当错误确实发生并且函数无法继续执行时 在 JavaScript 中报告错误而不是依赖 null 和 undefined 是一个好方法 我可以想到三种方法 没做什么 抛出异常 assert 这是一个简单的示例场景 一个将传入的金额记入用户帐户

随机推荐

  • 为什么长度为 1 的元组的元组实际上不是元组,除非我添加逗号?

    给定一个元组的元组T a b 和一个单独的元组t1 a b 为什么 t1 in T 返回假 更新 来自 Ipython In 22 T a b In 23 t1 a b In 24 t1 in T Out 24 False 那么如何检查一个
  • 如何使用 Google Apps 脚本读取日历事件重复设置

    我似乎无法找出如何读取重复设置的方法CalendarEventSeries使用 Google Apps 脚本 有一个setRecurrence方法 我正在寻找类似的东西getRecurrence希望它会返回EventRecurrence表示
  • 在 Ubuntu 18.04 上使用 Python3.6 安装底图

    我一直在努力得到Basemap在过去的几个小时内已启动并运行 下列的本教程 I run conda install basemap in my venv在 Pycharm 上 安装按计划进行 我在术语中收到一条消息 指出已经安装了 base
  • 如何在flutter上使用cookie发出http请求?

    我想在正确处理 cookie 的同时向远程服务器发出 http 请求 例如 存储服务器发送的 cookie 并在发出后续请求时发送这些 cookie 最好保留所有 cookie 对于我正在使用的http请求 static Future
  • UserControl 的相对源绑定

    我创建了一个UserControl用于在我的应用程序中显示超链接 这个的标记UserControl好像
  • PayPal Orders V2 未处理批准 url

    根据PayPal订单API作为此处的文档 我们必须首先创建订单 然后从响应中 我们必须复制批准 url 并在浏览器中运行 这将打开 PayPal 页面 买家将批准该请求 此后应发出捕获请求 问题详情 我有以下使用 PayPal API 创建
  • 使 div 表现得像图像

    如果 div 的背景是图像 如何使 div 的大小调整属性的行为与图像标签的行为完全相同 这个想法是复制图像标签在此代码片段中的行为方式 div background color 2DBCFF text align center box s
  • DocuSign Java Rest Api - 结合锚标记自定义文件和 PDF 表单字段转换(复合模板)

    在我的应用程序中 我有一个 PDF 包 我将其合并并发送给 DocuSign 使用 SignHere 和 Initial here AnchorTags 可以完美地完成此操作 但是 我现在需要包含某些需要用户输入字段的 PDF 例如 W 9
  • Emacs Python:Echoing、Hooks 和 Org-mode

    基于这个问题我发现了如何修复 emacs 中 python shell 的回显问题 我想要做的是将其添加到我的 emacs 文件中 以便它会自动发生 defun python startup setq comint process echo
  • Jquery 移动日期选择器未显示在弹出字段中

    I used jtsage jquery mobile date picker 我想在单击弹出窗口内的文本时显示日期选择器 但弹出窗口背面显示的日期选择器我想在弹出窗口前面显示日期选择器 我的代码就像 div a href datepop
  • 使用 smtp SendAsync 发送邮件

    这就是当我需要发送电子邮件时给我带来错误的方式 但此后给我的错误是这样的 此时无法启动异步操作 异步 操作只能在异步处理程序中启动 或者 模块或页面生命周期中的某些事件期间 如果这 执行Page时发生异常 请确保该Page是 标记为 此异常
  • 页面加载时间减少 200 毫秒是否显着? [关闭]

    Closed 这个问题是无关 目前不接受答案 我在我开发的一个网站中使用实验室 js 进行了一些测试 页面加载时间减少了 200 毫秒 现在后端处理后花费的总时间约为1 5秒 我在想是否值得这么麻烦 200ms 是一个巨大的增益吗 可笑吗
  • 一些非常基本的 HTML 中无法解释的偏移量 [重复]

    这个问题在这里已经有答案了 有时我发现自己处于这样的情况 基本上非常简单的 HTML CSS 中有一些我不理解的偏移 这是一个example div style width 100 height 92px div
  • Java JComboBox 是否可以将 editable true 设置为仅一项?

    我想创建一个JComboBox上面有三个项目 我想将其设置为仅可编辑到最后一个项目JComboBox例如 JComboBox cb new JComboBox cb addItem Dog cb addItem Cat cb addItem
  • 如何使用 Selenium Python 从 reddit.com 搜索页面的问题中提取 title 和 href 属性

    我想抓取页面上所有问题的链接和标题 一个元素具有以下结构 a class SQnoC3ObvgnGjWt90zD9Z href r excel comments ayiahc calculating expiration dates pre
  • Python 请求模块中的 SSLError

    我想使用从服务器生成的证书对客户端进行身份验证 我有一个 server ca crt 下面是正在运行的 CURL 命令 如何使用 python requests 模块发送类似的请求 curl X GET u sat username sat
  • http.get 解析错误,代码:“HPE_UNEXPECTED_CONTENT_LENGTH”

    我有一个简单的节点脚本来处理来自我的家庭自动化 API 的一些数据 直到上次 Node 更新之前一切都运行良好 现在 使用 Node 版本 4 3 0 或 5 6 0 http 模块会出现以下错误 Error Parse Error byt
  • 如何从设备和打印机 IShellFolder 获取打印机名称?

    我使用代码获取系统打印机图标 我发现的唯一方法是使用 IShellFolder 现在我想将它们与 InstalledPrinters 连接 但问题是 我找不到找到真实打印机名称的方法 例如 ServerName PrinterName 与
  • 如何开始使用WCF/WPF?

    我已经使用 net 有一段时间了 这些天在我面试的所有地方 我都不断被问及我对 NET 3 0 3 5 技术 WF WPF WCF 等 的了解 你如何开始学习这些 有什么好的链接吗 我应该更改当前的代码以开始像这样工作吗 我尝试以学习新技术
  • 处理 ASP.NET MVC 中的 JavaScript 注入

    我们如何处理 asp net mvc C 应用程序中的 javascript 注入 我可以在我的视图中使用 Html Encode 但问题是我也有 html 可以像博客文章一样显示在页面中 我需要删除在应用程序的输入元素中输入的脚本 我怎样