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 包 relay.ts 使用教程

    什么是 NPM 包 NPM 是 Node.js 中的一个包管理器,可用于查找、安装和发布 Node.js 模块。在前端开发中,我们也常用 NPM 包来扩展项目功能,提高开发效率。

    3 年前
  • npm 包 oko-test-comp 使用教程

    介绍 oko-test-comp 是一个基于 Vue.js 开发的前端组件库,提供了一些常用的 UI 组件,例如按钮、表格、输入框等。oko-test-comp 的设计风格简洁、清晰,易于上手。

    3 年前
  • NPM包 promessinha 使用教程

    简介 promessinha是一种基于Promise对象的JavaScript库,它可以帮助前端开发者更加便捷地处理异步操作。使用promessinha可以轻松地处理一系列异步任务,并通过Promis...

    3 年前
  • npm 包 data-mesh-types 使用教程

    随着前端技术的不断发展,我们往往需要使用一些工具来帮助我们更快、更高效地进行开发。其中,npm 包就是我们所熟悉的一类工具。在这篇文章中,我将为大家介绍一个非常有用的 npm 包:data-mesh-...

    3 年前
  • npm 包 ez-validator.js 使用教程

    在前端开发中,数据验证是一个常见的需求。为了降低开发工作量,提高开发效率,我们可以使用 npm 包 ez-validator.js 进行数据验证。该包提供了多种验证方法,可以满足各种数据验证需求。

    3 年前
  • 使用 npm 包 ngx-sdp 制作 WebRTC 会议应用

    前言 WebRTC 是一种实时通信解决方案,它能够让浏览器之间实现点对点的音频、视频以及数据传输。在现今疫情防控期间,更多的人希望使用远程视频会议的方式进行工作和学习,因此 WebRTC 技术显得尤为...

    3 年前
  • npm 包 solar-ng-zorro-antd 使用教程

    介绍 solar-ng-zorro-antd 是一个基于 Angular 框架和 Ant Design 的 UI 库,为开发者提供了一系列丰富的组件和样式。它简化了 Angular 应用程序的开发和美...

    3 年前
  • npm 包 react-time-machine 使用教程

    介绍 在 Web 前端开发中,React 已经成为了最流行的 UI 框架之一。而 react-time-machine 是一个用于实现时间旅行功能的 npm 包,能够帮助开发者轻松地实现时间轴功能。

    3 年前
  • npm 包 aiPlug-Elements 使用教程

    介绍 aiPlug-Elements 是一个基于 Web Component 技术的前端 UI 组件库。它封装了常见的 UI 控件,比如按钮、输入框、下拉框等,可以被渲染到任何 Web 页面中。

    3 年前
  • npm 包 angular5-htmldiff-js 使用教程

    前言 在前端开发中,我们经常需要对两个版本的 HTML 内容进行比较,以便进行差异对比、补丁生成等操作。而 angular5-htmldiff-js 是一个基于 Angular 5 的 npm 包,提...

    3 年前
  • npm 包 @innersource.soprasteria.com/underscore-template-loader 使用教程

    介绍 @innersource.soprasteria.com/underscore-template-loader 是一个用于 Webpack 的模板加载器,用于编译 Underscore 模板。

    3 年前
  • npm 包 authcli 使用教程

    1. 前言 在现代 Web 开发过程中,前后端分离已经成为一个很流行的开发方式。前端开发者需要与后端开发者进行人机交互、开发接口和调试等沟通。authcli 就是一款方便前端开发者调试后端接口的 np...

    3 年前
  • npm包dbclone使用教程

    在前端开发中,常常需要与数据库交互,而数据操作通常都需要一些重复的步骤,因此不少开发者都会寻找一些工具来简化这一过程。而npm包dbclone则是一款帮助前端开发者快速开发数据库应用程序的工具。

    3 年前
  • npm 包 justows.plugin.http.jwt 使用教程

    简介 justows.plugin.http.jwt 是一个基于 Node.js 开发的 npm 包,用于生成 JSON Web Token(JWT),通过 JWT 可以实现用户认证和授权等功能。

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

    在前端开发中,使用一些常见的工具和插件能大大提高开发效率,npm 是一个非常实用的工具,很多与前端相关的包都可以在 npm 上找到。本文将介绍一个非常不错的 npm 包 ninjakatt-plugi...

    3 年前
  • npm 包 callbag-retry 使用教程

    前言 在前端开发中,异步请求是经常遇到的问题,但是经常会遇到请求失败的情况,如何处理请求失败是我们需要关注的重点。npm 上有很多优秀的库可以解决这个问题,其中 callbag-retry 就是一个不...

    3 年前
  • npm 包 monthdiff 使用教程

    在前端开发中,我们经常需要计算两个日期之间的差值,包括天数、周数、月数等等。而 npm 包 monthdiff 就是一款用来计算日期月份差的工具包。 本文将为大家介绍如何使用 monthdiff 包来...

    3 年前
  • npm 包 @ghuser/github-contribs 使用教程

    介绍npm包@ghuser/github-contribs npm包@ghuser/github-contribs是一个用于获取GitHub用户的贡献统计信息的Node.js模块。

    3 年前
  • npm 包 musubii-edge 使用教程

    前言 musubii-edge 是一个非常实用的 npm 包,它可以非常方便地帮助前端开发者进行边缘计算,优化前端性能。本篇文章将会详细介绍 musubii-edge 的安装、基本使用方法和常见问题解...

    3 年前
  • npm 包 stream-object2json 使用教程

    在前端开发中,我们经常需要处理从网络或者文件中获取的数据,这些数据可能是 JSON 格式的对象,也可能是二进制流的数据。为了便于处理数据,我们可以使用一些 npm 包来帮助我们把数据转化为可处理的格式...

    3 年前

相关推荐

    暂无文章