在 Web 开发中,referrer-policy 是一个非常重要的 HTTP 响应头。它可以控制浏览器是否把当前页面的 URL 作为 Referer 发送给下一个请求的目标服务器。由于安全和隐私原因,现在很多网站都会使用一些策略来限制 Referrer 的泄漏。而 npm 包 referrer-policy 就是用来实现这些策略的。
安装
我们可以通过 npm 来安装 referrer-policy:
npm install referrer-policy
安装成功后,我们就可以在代码中引入它了:
const referrerPolicy = require('referrer-policy');
使用
refeer-policy 提供了以下几种策略:
- no-referrer:不发送 Referer。
- no-referrer-when-downgrade:如果从 HTTPS 网站点击链接跳转到 HTTP 网站,则不发送 Referer;否则发送完整的 Referer。
- same-origin:仅在同域名下发送 Referer。
- origin:只发送 Origin 部分,不包括路径和查询参数。
- strict-origin:只发送与当前页面有相同协议、主机名和端口号的 URL。
- strict-origin-when-cross-origin:在同域名下发送完整 Referer,在跨域时只发送 Origin 部分。
- unsafe-url:总是发送完整的 Referer,即使向不安全的协议(如 HTTP)发送。
我们可以通过以下方式来设置策略:
referrerPolicy({ policy: 'no-referrer', // 设置策略 reportOnly: false, // 是否仅报告 reportUri: '', // 上报地址 });
其中,policy 参数是必选的,表示要使用的策略。reportOnly 参数表示是否仅报告违反策略的请求,如果为 true,则不会阻止请求发送 Referer。reportUri 参数是上报地址,可以将违规请求发送到指定的地址。
下面是一个完整的示例代码:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- -------------- - --------------------------- ----- ------ - ----------------------- ---- -- - ---------------- ------- ---------------------------------- ----------- ----- ---------- ---------- ------- ---- -- -- - -- ---- --- --- --------------------
总结
referrer-policy 是一个非常有用的 HTTP 响应头,在 Web 开发中应该充分了解它的作用和使用方法。通过 npm 包 referrer-policy,我们可以方便地实现各种限制 Referrer 泄漏的策略。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/53435