IT技术分享

 

 

页面禁止 referer 的 6 种方式

• 2025年8月12日 • 0 条评论

 
  1. head 标签中添加 meta属性
    可以在 head 标签中添加 meta 属性,设置
    name=’referrer’ content=’never’
  2. 添加ReferrerPolicy属性
    添加 meta 标签相当于对文档中的所有链接都取消了 referer ,而 ReferrerPolicy 则更精确的指定了某一个资源的 referer 策略。关于这个策略的定义可以参照 MDN。比如我想只对某一个图片取消referrer,如下编写即可:
<img src="xxxx.jpg"  referrerPolicy="no-referrer" />

A 标签也支持这个属性:

<a href="xxxx.html" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"   referrerPolicy="no-referrer" />

3. 通过 rel=’noreferrer‘
还可以通过标签的 rel 属性来禁止 referer 头部:


<a href="xxxx.html" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"   rel="noreferrer" />
目前兼容性有限, 只支持 <a>, <area>, <form> 这三个元素:
  1. 代理模式
    这个就比较好理解了,把自己的服务器当做代理服务器, 请求先经过自己服务器, 修改referer头, 再反向代理到真正的服务器地址。
  1. 外链 通过 iframe 来打开
    如果是通过外链的话,那么可以通过 iframe 的方式来打开:
function open_without_referrer(link){
  document.body.appendChild(document.createElement('iframe')).src = 'javascript:"<script>top.location.replace(\''+link+'\')<\/script>"';
}

这个其实就是通过 top.location.replace 方法替换当前的页面,从而丢失掉 referer 来源,这时候如果点击浏览器的回退按钮,就会发现已经回退不过去了。

  1. 外链通过新窗口打开
    如果是通过 window.open 打开的方式,也可以这样做:
function open_new_window(full_link){ 
    window.open('javascript:window.name;', '<script>location.replace("'+full_link+'")<\/script>');
 }

这个跟上面的 iframe 差不多,也是通过 location.replace 方法来更新新打开窗口的文档。从而丢失掉 referer 来源。

文章作者:ma
本文地址:https://me.eastgree.cn/2025/08/12/%e9%a1%b5%e9%9d%a2%e7%a6%81%e6%ad%a2-referer-%e7%9a%84-6-%e7%a7%8d%e6%96%b9%e5%bc%8f/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

 

Comments

 
  1. 还没有任何评论,你来说两句吧

 

发表评论

 
  • 发表评论

标签云

dede架构 dede目录结构 jQuery Migrate js弹窗

文章存档