npm 包 handlebars-subresource-integrity 使用教程

在前端开发中,我们经常使用模板引擎来生成 HTML 页面。Handlebars 是一款非常流行的模板引擎,它允许我们在 HTML 中嵌入 JavaScript 代码以及通过数据来自动生成 HTML。然而,随着网站安全性要求的提升,我们需要确保在加载资源时,不会被恶意篡改或者劫持。这就需要我们为页面中的资源添加 Subresource Integrity(SRI)。

handlebars-subresource-integrity 是一款可以自动添加 SRI 属性的 Handlebars 模板引擎的 npm 包。它可以在编译 Handlebars 模板时,为其中的脚本和样式资源自动生成对应的 SRI 属性。下面是详细的使用教程。

安装

首先,我们需要在项目中安装 handlebars-subresource-integrity。在命令行中输入以下命令:

--- ------- -------------------------------- ----------

安装完成后,我们可以在项目中使用它了。

使用方法

  1. 安装 handlebars-subresource-integrity 后,在项目中引入 Handlebars 和 handlebars-subresource-integrity:
----- ---------- - ----------------------
----- ------------- - --------------------------------------------
  1. 然后,注册 handlebarsSRI 到 Handlebars 中:
-----------------------------------
  1. 最后,可以直接编译带有 SRI 属性的 Handlebars 模板了:
----- -------- - --------------------------- -----------------------------
----- ------ - ------------- -- ----
--------------------

在这里,我们预定义了一个模板,在该模板中有一个引用 example.js 的 script 标签,通过 handlebarsSRI.register(handlebars),将 SRI 注册到模板中,即可使用模板引擎和 SRI 属性结合编译模板。

示例

我们可以通过以下示例来详细学习 handlebars-subresource-integrity 的使用方法。

  1. 首先,创建一个如下所示的 index.html 文件:
--------- -----
----- ----------
  ------
    ----- ----------------
    ----------------- --- ------------
  -------
  ------
    ---- -------------------
    ------- -------------------------
  -------
-------
  1. 编写一个 Handlebars 模板,例如:
-----
  ------- ------
  -----------------------
  ---------
------

在这个模板中,我们使用了 Handlebars 的 #each 循环来遍历列表内容,然后将列表项渲染成一个段落标签。

  1. 创建一个 index.js 文件,包含以下代码:
----- ---------- - ----------------------
----- ------------- - --------------------------------------------

-----------------------------------

----- -------- - --------------------
  --------- -----
    ----- ----------
    ------
        ----- ----------------
        ----------------- --- ------------
        ----- ---------------- ---------------- --------------------------------
    -------
    ------
        ---- -----------------------------
        ------- --------------- ------------------------------------------
    -------
    -------
---

----- ---- - -
  ----- -
    - -------- -------- ----
    - -------- -------- ----
  --
  ---------- -
    ------- ------------------------------------------------------
    ------ ------------------------------------------------------
  --
  ----- --------------------
        -----
            ------- ------
            -----------------------
            ---------
        ------
    --------
--

----- ------ - ---------------
--------------------

在这个文件中,我们首先引入了 Handlebars 和 handlebars-subresource-integrity。然后,我们使用 handlebarsSRI.register(handlebars) 来注册 handlebars-subresource-integrity,将 SRI 属性打到模板中的 CSS 和 JS 资源中。

接着,我们定义了一个包含 SRI 属性的 Handlebars 模板,模板中包含与 index.html 相同的结构,其中 CSS 和 JS 资源都包含了 SRI 属性。

最后,我们准备了一个数据对象,将我们的数据填充进模板中。在这个数据对象中,我们包含了一个 list 数组,里面有两个包含 content 属性的对象。我们还有一个 integrity 对象,包含了 CSS 和 JS 资源的 SRI 属性值。最后,我们调用 handlebars.compile 来编译 list 变量所代表的 Handlebars 模板,并将编译结果赋值给 body 属性。

在最后的代码段,我们将数据对象传递给了模板的 compile 方法,并将返回结果输出到控制台上。

在此,我们已经成功地创建了一个包含 SRI 属性的 Handlebars 模板。

结论

Handlebars SRI 包括了可以自动添加 SRI 属性的 Handlebars 模板,可以帮助开发者有效地提高页面资源的安全性。在本文中,我们详细介绍了 handlebars-subresource-integrity 的安装和使用方法,并提供了一个详细的示例供参考。希望本文能够帮助您更好地编写安全的前端代码。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066b4e51ab1864dac6685a


猜你喜欢

  • npm 包 aerijo-test 使用教程

    前言 前端开发工作中有许多需要自动化的部分,例如测试。为了使测试更加方便和高效,我们可以使用一些测试工具或测试框架。npm 包 aerijo-test 就是其中一种可以帮助前端开发人员更加愉悦地进行测...

    3 年前
  • npm 包 gs-plugin 使用教程

    在前端开发中,通过使用 npm 包可以更加便捷地管理依赖项和进行开发。gs-plugin 是一款前端开发用的 npm 包,它提供了一些实用的工具以加速前端开发的进度。

    3 年前
  • npm 包 object-predicate 使用教程

    前言 在前端开发中,经常需要对一个对象或者数组进行筛选或者过滤,这时可以用到 object-predicate 这个 npm 包。object-predicate 是一个小巧的库,可以快速且方便地进行...

    3 年前
  • npm包rayyen使用教程

    前言 在前端开发领域,npm (Node Package Manager) 是至关重要的一环。它是一个包管理工具,用于添加、更新和维护 JavaScript 库和工具。

    3 年前
  • Nuxt_Prismic: 一个方便的 Prismic 集成

    如果您正在寻找一个简单易用的 Prismic 集成框架,那么 nuxt_prismic 就是你的不二之选。 nuxt_prismic 是一个为 Nuxt.js 框架提供的 Prismic 集成方法。

    3 年前
  • npm 包 testcafe-reporter-slack-errors-only 使用教程

    前言 在前端开发中,自动化测试时,我们经常需要将测试结果及时反馈给开发和测试团队。而 TestCafe 是一个用于 Web 应用程序自动化测试的工具,它可以在多个浏览器和平台上运行测试并生成报告。

    3 年前
  • npm 包 angular7-csv 使用教程

    简介 npm 包 angular7-csv 是一个用于处理 CSV 文件的 Angular 7 模块。使用该模块可以方便地将数据以 CSV 格式导出或导入。 安装 在使用 angular7-csv 之...

    3 年前
  • npm 包 ci-ui-base 使用教程

    前言 在前端开发中,我们常常需要使用一些 UI 组件库来实现页面的布局和美化。ci-ui-base 就是一种常用的 UI 组件库,它包含了很多常见的 UI 组件,如按钮、表格、表单等等,可以大大地提高...

    3 年前
  • npm 包 react-use-former 使用教程

    1. 背景 在使用 React 开发 web 程序时,我们经常需要使用表单来收集用户的输入信息。React 中如何实现表单处理呢? 使用 React 可以手动处理表单,但是这样的代码相对比较冗杂,而且...

    3 年前
  • npm包Typing-Music使用教程

    简介 Typing-Music 是一个 npm 包,它为用户提供了一种全新的打字体验,能够加强打字技能。本文将通过对 Typing-Music 的介绍和使用指南,帮助读者更好地了解和使用它。

    3 年前
  • npm 包 vue-mixed-props 使用教程

    在 Vue 组件中,我们经常需要在 props 中定义多个类型的参数,比如 String、Number、Array 或者 Object。在项目逐渐复杂的情况下,这些类型在组件中的使用也会变得越来越复杂...

    3 年前
  • npm 包 @sheetbase/utils-server 使用教程

    简介 在前端开发中,我们经常需要对文本、日期、数字、数组、对象等进行操作和处理。因此,一些方便实用的工具类库成为了开发不可或缺的一部分。本文介绍的是一个使用简单、功能强大的 npm 包:@sheetb...

    3 年前
  • npm 包 @mixint/pathwrite 使用教程

    在前端开发中,我们经常需要处理文件路径,而 @mixint/pathwrite 是一个能够方便地处理文件路径的 npm 包。本文将为大家介绍这个 npm 包的使用教程,包括如何安装、如何使用以及示例代...

    3 年前
  • NPM 包 ngx-testing-library 使用教程

    作为前端开发人员,我们总是需要写一些可维护性高、测试覆盖率高的代码。然而,经常会有一些的问题,如代码不够清晰,业务逻辑不够完善,顺畅的测试不好写等等。在这种情况下,我们需要一些工具来帮助我们编写高质量...

    3 年前
  • npm 包 alfred-dark-mode 使用教程

    在本文中,我将介绍一款名为 Alfred Dark Mode 的 npm 包,它可以帮助前端开发人员在 Alfred 应用程序的上下文菜单中切换到黑暗模式。本文将介绍如何获取、安装和使用这个包,以及它...

    3 年前
  • npm 包 alfred-lock 使用教程

    概述 在前端开发中,我们都会遇到需要在本地开启一个端口进行调试,如 http://localhost:3000 等。这时候,我们可能想要让这个端口只被自己使用,并在不需要使用该端口时能够快速解除占用。

    3 年前
  • npm 包 Flux-Framework 使用教程

    介绍 在 Web 应用开发中,数据的流动是一个非常核心且重要的问题。而 React 和 Flux 就是解决这个问题的一个非常好的组合。Flux 是由 Facebook 提出的一种应用架构思想,它提供了...

    3 年前
  • npm 包 @credo/cls 使用教程

    在前端开发中,有时需要创建多个 CSS 类来对不同的 HTML 元素进行样式的设置,但直接在 CSS 文件中添加这些类名会导致文件变得臃肿并降低了可维护性。因此,我们需要一种工具来更加有效地管理这些类...

    3 年前
  • npm 包 alfred-xcode 使用教程

    在前端开发中,我们经常需要使用到 Xcode 进行 iOS 应用程序的开发和调试。然而,Xcode 是一个功能非常强大的软件,很多情况下需要耗费大量的时间和精力去查找和实现具体的功能。

    3 年前
  • npm 包 framehost 使用教程

    简介 framehost 是一个适用于前端开发的 npm 包,它可以帮助开发者在 iframe 中嵌入一个网页并处理跨域问题,方便我们在同一个页面中呈现不同的来源内容。

    3 年前

相关推荐

    暂无文章