Express.js 中如何使用 helmet 保证安全

阅读时长 4 分钟读完

随着网络安全的日益重要,越来越多的 Web 应用程序需要采取措施来确保其安全性。一种流行的方案是使用 Helmet,它是一个 Node.js 中间件,可以轻松地为 Express.js 应用程序提供的一系列安全性保障。

本文将介绍如何使用 Helmet 来保证 Express.js 应用程序的安全性,并提供示例代码进行演示。

安装 Helmet

在使用 Helmet 之前,需要先在项目中安装它。可以使用 npm 来执行以下命令来安装:

使用 Helmet

一旦安装了 Helmet,就可以在 Express.js 应用程序中使用它。可以通过以下方式来加载它:

这将使用默认设置启用 Helmet。默认设置包括以下安全功能:

  • 跨站点脚本攻击(XSS)保护
  • 禁用资源嗅探
  • 认证控制即使在老旧的浏览器中也有比较好的不安全方法
  • 防止 URL 好看攻击,例如 http://example.com/%2e%2e/%2e%2e/%2e%2e/etc/passwd
  • 防御点击劫持攻击
  • 隐藏 x-powered-by 报头

定制 Helmet 设置

除了使用默认设置外,还可以使用各种 options 参数来定制 Helmet 行为。以下是一些常用的选项:

默认 Src

默认情况下,CSP(内容安全策略)不启用,default-src 元素被设置为 ["'self'"]。但是,如果您想使用 CSP 并定制默认源,则可以通过以下方式进行:

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

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

这个示例将 default-src 设置为 ['self', 'default.com']。这将允许应用程序的资源从 selfdefault.com 加载。

其他设置

此外,还有其他选项,例如定制 referrer policy,启用 HSTS,防止 IFRAME 点击劫持,实施 DNS 预取等。以下是一些示例:

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

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

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

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

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

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

结论

本文介绍了如何使用 Helmet 保障 Express.js 应用程序的安全性,并提供了示例代码进行演示。虽然本文只是介绍了 Helmet 的一些基本概念和实践,但是通过使用定制设置,您可以与其他强力的安全工具(例如 CSP、HSTS 策略)一起使用 Helmet 来加强您的安全策略。希望您在使用 Helmet 时,能提高安全意识并加强程序的安全性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/674ff73dfbd23cf89071364a

纠错
反馈