fastify-hpkp 使用教程

阅读时长 4 分钟读完

简介

fastify-hpkp 是一个 npm 包,用于快速轻松地添加 HTTP Public Key Pinning (HPKP) 功能到你基于 Fastify 框架构建的 web 应用程序中。它可以帮助你增强应用程序的安全性,防止中间人攻击、SSL/TLS 证书替换等安全问题。

安装

使用 npm 安装 fastify-hpkp

或者,如果你使用 yarn

使用方法

添加 HPKP

要添加 HPKP,你需要先调用 fastify-hpkp 的构造函数,并传入一些参数:

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

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

以上参数的含义:

  • maxAge:HPKP 的持久时间,以秒为单位。这个参数表示客户端会缓存这个 HPKP 指令 60 天。
  • sha256s:证书公钥的 SHA-256 值。你可以使用 openssl 来生成 SHA-256 值:openssl x509 -in <cert.crt> -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | base64
  • reportUri:如果客户端收到了不符合 HPKP 要求的证书,它会发送一个 POST 请求到这个 URI。

添加 HPKP 错误处理函数

如果客户端收到了不符合 HPKP 要求的证书,它会发送一个 POST 请求到 reportUri。你需要添加一个相应的错误处理函数来处理这些请求:

示例代码

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

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

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

  ------
--

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

结论

通过使用 fastify-hpkp,你可以轻松地增加 HPKP 功能到你的应用程序中,从而增强应用程序的安全性。同时,你还可以通过错误处理函数来处理客户端发送的 HPKP 错误请求,并及时发现并排查相关安全问题。

参考文献

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

纠错
反馈