如何设置HTML网站跳转并指定Facebook等来源的referrer?
结论
首先明确:无法直接实现从你的博客跳转时强制携带自定义的Facebook来源Referer,浏览器的原生安全策略禁止前端页面主动伪造、修改HTTP请求中的Referer头内容,该头由浏览器遵循既定的Referer策略自动生成。
可用替代方案
方案1:隐藏自身站点的Referer信息
如果你的核心需求是不暴露自身博客地址给跳转目标站,可以直接通过修改Referer策略实现:
- 全局配置:在博客HTML的
<head>标签中添加如下meta标签,所有出站跳转都不会携带Referer
<meta name="referrer" content="no-referrer">
- 单链接配置:仅针对指定链接隐藏Referer,给对应a标签添加
referrerpolicy属性即可
<a href="https://目标站点地址" referrerpolicy="no-referrer">跳转链接</a>
方案2:服务端代理实现伪造Referer
如果你需要目标站点确实收到Facebook来源的Referer,可以通过服务端中转的方式实现:
- 前端跳转先请求你自己的服务端接口
- 服务端主动构造HTTP请求,手动将请求头的
Referer字段设置为Facebook的域名地址,向目标站点发起请求 - 服务端将目标站点返回的内容回传给前端,或者你也可以在服务端处理后再返回对应结果
注意:该方案仅适用于你需要拉取目标站点内容的场景,如果是要让用户浏览器直接跳转到目标站点的域名下,最终浏览器发起的请求Referer依然无法被强制修改为Facebook地址。
补充说明
浏览器禁止任意修改Referer头是通用的安全规范,目的是防范CSRF攻击、恶意流量伪造等风险,没有公开的前端方案可以突破该限制。
内容的提问来源于stack exchange,提问作者stakflowweeer
相关产品推荐
相关产品推荐

