npm 包 fastify-referrer-policy 使用教程

在前端项目开发中,安全性一直是一个重要但容易被忽视的方面。其中之一便是设置正确的 Referrer-Policy,避免恶意攻击或数据泄露。而 fastify-referrer-policy 正是一个 npm 包,可以帮助我们简单快捷地设置 Referrer-Policy。

什么是 Referrer-Policy?

Referrer (引荐),是指在网络请求中,请求头部中的一个字段,用来标识该请求是从哪个页面跳转而来的。而 Referrer-Policy (引荐策略),则定义了浏览器如何传递 Referrer 头部信息。

在安全性方面,正确设置 Referrer-Policy 可以避免以下几个问题:

  • 隐藏 HTTP 请求的来源,避免恶意攻击;
  • 隐藏用户浏览器的历史记录,保护用户隐私;
  • 隐藏站点的外部链接来源,避免数据泄露;

安装 fastify-referrer-policy

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

fastify-referrer-policy 配置

在 fastify 项目中,通过注册 fastify-referrer-policy 插件,然后通过 referrerPolicy 选项来设置 Referrer-Policy。

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

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

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

以上代码中,我们设置了 Referrer-Policy 为 same-origin,意味着仅允许跨域请求头部携带与当前页面具有同域名的 Referrer 信息。

fastify-referrer-policy 可选配置项

fastify-referrer-policy 还提供了一些可选配置,可以根据需求进行设置。

policy

policy 可以配置 Referrer-Policy 的值,可以是以下任意一项:

  • no-referrer: 不传递 Referrer 头部信息;
  • no-referrer-when-downgrade: 在 HTTPS 网站的内部跳转时,传递完整 Referrer 信息;外部跳转时,不传递 Referrer 信息;
  • same-origin: 仅传递与当前页面同域名的 Referrer 信息;
  • strict-origin: 仅传递完整的同域名 Referrer 信息,但不包括子路径;
  • origin: 传递完整 Referrer 信息,但仅包括协议、域名和端口号,不包括子路径;
  • strict-origin-when-cross-origin: 在页面内跳转时,传递完整 Referrer 信息,但不包括子路径;外部跳转时,不传递 Referrer 信息;
  • unsafe-url: 始终传递完整 Referrer 信息。

例如,我们要设置 strict-origin-when-cross-origin

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

excludedRoutes

excludedRoutes 可以设置排除路由的空白列表,列表中的路由不会被 fastify-referrer-policy 插件处理 Referrer-Policy。例如:

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

表示 /assets/* 路由下的请求不会被更改 Referrer-Policy。

fastify-referrer-policy 示例

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

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

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

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

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

在以上示例中,我们定义了两个路由://about。此时,访问 http://localhost:3000/,页面 Referrer-Policy 会被设置成 strict-origin-when-cross-origin;而访问 http://localhost:3000/about,因为该路由排除了忽略列表 /api/*,所以该页面 Referrer-Policy 保持默认值。

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


猜你喜欢

  • npm 包 `list-block` 使用教程

    list-block 是一个常用于前端开发中的列表组件,它可以简化列表的创建和渲染,提高开发效率。本文将详细介绍如何使用 list-block 包。 安装 list-block 使用 npm 安装 l...

    3 年前
  • npm 包 blear.ui.date-time-toucher 使用教程

    简介 blear.ui.date-time-toucher 是一个开源的 JavaScript 库,它提供了一种简单且功能强大的方式来处理日期和时间选择器。它是基于 jQuery 和 Moment.j...

    3 年前
  • npm 包 blear.ui.draggable-list 使用教程

    在前端开发中,拖拽列表是一个常见的组件需求。而 blear.ui.draggable-list 是一个方便易用的 npm 包,可以快速实现拖拽列表功能。 本文将介绍 blear.ui.draggabl...

    3 年前
  • npm 包 droplr-cli 使用教程

    介绍 npm 包 droplr-cli 是一个 node.js 命令行工具,用于使用 Droplr 上传、分享和管理文件。Droplr 是一种云服务,可以帮助用户上传和分享文件,包括文本、图像和视频等...

    3 年前
  • npm 包 react-native-dropdown-modal 使用教程

    简介 react-native-dropdown-modal 是一款基于 React Native 的下拉选择框组件。它可以帮助开发者快速构建下拉选择框,具有自定义样式,动画效果等特性。

    3 年前
  • npm 包 blackfyre 使用教程

    前言 blackfyre 是一个基于 React 的 UI 组件库,提供了丰富的组件来帮助开发者快速构建漂亮的 UI 界面。作为一个前端开发人员,我们经常需要使用各种 UI 组件来搭建各种功能和界面。

    3 年前
  • npm 包 node-phpass 使用教程

    在前端开发中,我们经常需要使用密码哈希算法来确保用户密码的安全性。而 node-phpass 是一个基于 PHP 版本 phass 库 的 Node.js 版本库,可以用来实现密码哈希功能。

    3 年前
  • npm 包 azure-applicationinsights-query 使用教程

    随着云计算和大数据越来越流行,监控和分析应用程序的需求变得愈加紧迫。Azure 应用程序洞察是一项云服务,它为您提供诸如分布式跟踪、异常分析和日志分析等功能。而 npm 包 azure-applica...

    3 年前
  • npm 包 efrolic 使用教程

    什么是 efrolic? efrolic 是一个基于 React 的框架,旨在为开发者提供快速构建单页面应用程序的工具。它提供了许多有用的功能,例如路由管理、状态管理、网络请求等等。

    3 年前
  • npm 包 @rgba-image/clone 使用教程

    简介 在前端开发中,很多时候我们需要处理图片,而RGBA格式是最常用的图片格式之一。在处理RGBA格式图片时,我们可能需要对图片进行复制、修改等操作,而这个时候就有一个便捷的工具——npm包 @rgb...

    3 年前
  • npm 包 hyfe-cli 使用教程

    简介 在前端开发中,我们经常需要使用一些工具来增加我们的工作效率,例如构建工具、自动化测试等。而 hyfe-cli 就是这样一个工具,它是一个基于 Node.js 开发的命令行工具,用于快速创建 We...

    3 年前
  • 使用 Swagger-ui-express-versioning npm 包教程

    简介 Swagger-ui-express-versioning 是一个 Node.js 的 npm 包,用来在 Express 应用中快速地集成 Swagger UI,并且支持版本管理的功能。

    3 年前
  • npm 包 electron-clipboard-watcher2 使用教程

    在前端开发中,我们经常需要使用到剪贴板。 electron-clipboard-watcher2 是一个 NodeJS 包,它提供了在 Electron 应用程序中监听剪贴板事件的能力。

    3 年前
  • npm包joi-yml使用教程

    前言 前端开发中,数据校验是一个必不可少的步骤。为了简化数据校验的流程,npm上有很多优秀的数据校验的工具,其中joi-yml是一个小而精悍的包。在本文中,我们将一步步学习如何使用joi-yml。

    3 年前
  • npm 包 string-to-buffer 使用教程

    前言 在前端开发中,我们常常需要对数据进行加密或者解密操作,对于一些加密或者解密算法,大多数情况下是需要进行二进制数据的操作的,而 JavaScript 中的字符串类型并不支持这些操作。

    3 年前
  • npm 包 @geekcash/mix-lib 使用教程

    前言 随着前端技术的不断进步,工具的多样性以及开发流程的不断变化,前端库和框架也不断涌现。其中,npm 包作为前端社区最为活跃的一种开源形式,被广泛应用于前端开发。

    3 年前
  • npm 包 create-dear-app 使用教程

    简介 create-dear-app 是一个基于 React 的快速创建前端工程化项目的 npm 包,它可以帮助开发者快速搭建 React 项目框架,同时支持常用的 React 配置、webpack、...

    3 年前
  • 前端技术学习 | npm 包 graphql-artisan 使用教程

    GraphQL 是一种用于 API 的查询语言,它有着高效、强大、灵活、易于理解和使用等优点。GraphQL 在前端技术领域也变得越来越流行,为前端开发人员提供了更多的选择。

    3 年前
  • npm 包 azure-arm-machinelearning 使用教程

    Azure Machine Learning 是微软提供的云平台,用于让开发人员和数据科学家轻松地构建、部署和管理机器学习模型。它提供了许多强大的功能,包括自动化机器学习、可视化构建和部署、实时预测和...

    3 年前
  • npm 包 mcmc 使用教程

    在前端领域,开发者需要处理许多数据分析问题。MCMC(Markov Chain Monte Carlo)是一种统计方法,可以帮助开发者处理这些问题。npm 包 mcmc 是一个基于 JavaScrip...

    3 年前

相关推荐

    暂无文章