使用把手解释 html 字符串但转义脚本标签

2024-03-30

我为我的页面引入了一串 html,并且我认为除了脚本标记之外它是 html 安全的。我知道三重大括号会转义 html,那么省略任何脚本标签的步骤是什么?

例子

var foo = "<h1>Foo</h1><script>some script that might possibly be in here</script><p>bar</p>

然后在我的 .hbs 中:

{{{foo}}}

我想查看 h1 和段落,但遗漏了脚本。

提前致谢。


您有几个选择:

  1. 在将脚本标签作为上下文传递到 Handlebars 模板之前,请删除脚本标签。

  2. 创建一个 Handlebars 帮助器来代替三重花括号表达式。像这样的东西:

    Handlebars.registerHelper('strip-scripts', function(context) {
      var html = context;
      // context variable is the HTML you will pass into the helper
      // Strip the script tags from the html, and return it as a Handlebars.SafeString
      return new Handlebars.SafeString(html);
    });

然后在您的模板中使用它,如下所示:

    {{strip-scripts foo}}

使用帮助器时不需要使用三重花括号,因为您的帮助器已经返回一个 SafeString。

该帮助器可能比第一个选项更有用,因为您可以在整个模板中重复使用它。

查看此 StackOverflow 问题,以获取有关如何安全地剥离脚本标签的帮助:使用 JS 正则表达式从 html 中删除所有脚本标签 https://stackoverflow.com/questions/6659351/removing-all-script-tags-from-html-with-js-regular-expression

如果您使用 Node.js 在服务器端执行此操作,则可以使用 Cheerio 之类的东西来代替 jQuery。

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

使用把手解释 html 字符串但转义脚本标签 的相关文章

随机推荐

  • 如何配置 Visual Studio 2017 来运行 Gstreamer 教程?

    我使用的是 Windows 10 我无法配置 Visual Studio 2017 来运行基本的 Gstreamer 教程 我收到诸如 无法打开 gst gst h 之类的错误 我正在使用 gstreamer 1 0 请帮忙 朋友你好 首先
  • XML 文档中需要转义哪些字符?

    XML 文档中必须转义哪些字符 或者在哪里可以找到这样的列表 如果您使用适当的类或库 他们将为您进行转义 许多 XML 问题都是由字符串连接引起的 XML 转义字符 只有五个 quot apos lt lt gt gt amp 转义字符取决
  • 如何判断 Windows 用于启动哪个磁盘

    我需要找到一种方法来以编程方式确定 Windows 使用哪个磁盘驱动器启动 换句话说 我需要一种从 Windows 中确定 BIOS 使用哪个驱动器来启动整个系统的方法 Windows 是否公开了一个接口来发现这一点 鉴于 Windows
  • C# 中的解析器 FxCop 结果 Xml 文件

    我以编程方式使用VS2010和Fxcop 10 0 fxcopcmd exe 来生成fxcop分析结果 xml文件 我想要解析器 xml 文件来获取 fxcop 分析结果 在java语言中我发现了这个 http grepcode com f
  • 使用react-router-relay类型增强react-router模块

    默认的react router是这样使用的 import as React from react import Router Route hashHistory from react router const routing
  • Flutter WebView 插件 - 如何处理本地存储变量

    背景 我正在开发一个移动应用程序 其中使用 WebViewScaffold 加载在线目录 此特定目录提供初次访问时的导游服务 问题 每次我导航到目录 WebView 时 游览都会从头开始 这会冻结用户 直到游览完成 我怎样才能避免这种情况发
  • 按变量将 Dunnett 检验中的 P 值提取到表中

    我有一个包含 25 列的列表 我正在通过 Dunnett 测试按组 4 个级别 对其进行测试 我能够使用sapply函数让 Dunnett 按组对所有列起作用 但在将 p 值拉入表中时遇到一些问题 下面是我尝试使用 iris 数据集执行的操
  • 使用 Android Google Maps API 显示热图图层

    我正在 Android 中做一个项目 其中我给出了一个地理点列表 纬度 经度 每个点都有一个关联的海拔 高度 值 我的任务是根据点的高度值创建具有不同颜色的给定地图的热图 有人知道现有的图书馆可以做同样的事情吗 或者 如果有人能够指导如何实
  • 使用 TextFileColumnDataTypes 打开每列数据格式正确的 CSV 文件?

    我正在使用下面的 VBA 代码在 Excel 中打开 csv 文件 该代码模拟 Data Text to Columns 命令 在代码中需要为属性指定一个数组文本文件列数据类型 它为 csv 文件中的每一列指定一个数据格式 2 文本格式 但
  • 使用 linq2db 执行原始 SQL 字符串

    使用 linq2db https github com linq2db linq2db https github com linq2db linq2db 我可以执行原始 SQL 字符串并获取结果吗dynamic 我正在寻找类似 ADO NE
  • 无法在此小部件上方找到正确的提供程序 - Flutter

    我是 Flutter 新手 我在 Flutter 应用程序中使用 Provider 我的 main dart 文件如下所示 import package flutter material dart import package provid
  • 绝对定位忽略父级的填充

    如何使绝对定位元素尊重其父元素的填充 我想要一个内部 div 延伸到其父级的宽度 并放置在该父级的底部 基本上是一个页脚 但孩子必须尊重父母的填充 但它没有这样做 孩子被压在父母的边缘 所以我想要这个 但我得到这个 div style ba
  • 使用jquery检查多个复选框

    我有一个类似的数组 var values 1 3 4 5 我有复选框列表 div div
  • “设置时间戳”怎么会是慢查询呢?

    我的慢查询日志充满了如下条目 Query time 1 016361 Lock time 0 000000 Rows sent 0 Rows examined 0 SET timestamp 1273826821 COMMIT 我猜是set
  • CapnProto 最大文件大小

    目前我们正在使用 ProtocolBuffers 在 python 和 C 之间交换数据 然而 我们遇到了协议缓冲区的最大文件大小限制 并正在考虑将所有内容切换到 Cap n Proto 但是 由于它与协议缓冲区有些相关 我想知道Cap n
  • 在同一应用程序中实施 Stormpath 表单登录/身份验证以及 REST oAuth 身份验证时遇到问题

    我们将 Stormpath 与 Java 结合使用 并尝试在同一应用程序上将表单登录与 REST API 身份验证结合起来 我已经按照此处所述设置了stormpath servlet插件https docs stormpath com ja
  • 使用 Cygwin 的 Git 克隆项目时出现问题

    当我尝试使用 Cygwin 的 Git 2 7 0 克隆项目时 我遇到了一些与权限相关的问题 也就是说 每次我尝试运行克隆项目的可执行文件之一时 我都会收到下一个错误 Windows 无法访问指定的设备 路径或文件 您可能没有访问该项目的适
  • Hibernate java.lang.NoSuchMethodError: > org.hibernate.integrator.internal.IntegratorServiceImpl.

    在我的 jax rs 上使用 hibernate 我收到此错误 HTTP 错误 500 访问 services dateTest 时出现问题 原因 Server Error Caused by java lang ExceptionInIn
  • 字符串连接错误

    我遇到了语法错误 我承认这是一个语法错误 但我有点好奇why这是一个语法错误 这完全按照您的预期工作 0 9 each n puts n to s 2 n 2 to s 这会引发错误 0 9 each n puts n to s 2 n 2
  • 使用把手解释 html 字符串但转义脚本标签

    我为我的页面引入了一串 html 并且我认为除了脚本标记之外它是 html 安全的 我知道三重大括号会转义 html 那么省略任何脚本标签的步骤是什么 例子 var foo h1 Foo h1 p bar p 然后在我的 hbs 中 foo