a img 禁用http的 referer头信息
用超链接的方式从一个网站跳转到另外一个网站,会报无权限等错误,而直接打开就不报错。
从一个网站引用另一个网站的图片,会显示防盗链的图片。。。
很大的原因就是服务器检查了 referer,判断是否来自自己的服务器,如果不是的话,就返回个错误。如果想跳过这些检查,就需要把浏览器默认加的 referer 去掉。这里有四种方法:
方法一:HTML 全局禁用 referer
<meta >复制代码
其中 content 有四种类型的值:
类型 | 含义 |
---|---|
never | 去掉 referer |
always | 不管 http 有没有 SSL,均设置 referer。 |
origin | 只发送 origin 的设置。 |
default | 如果当前页面用了 https,而要加载的资源是 http,则 http header 中的 referer 置为空 |
方法二:设置 ReferrerPolicy 属性
<img src="test.jpg" referrerPolicy="no-referrer" />复制代码
兼容性:
- | nothing | meta in head referrer=never | meta in head referrer=no-noreferrer | meta referrer=never | meta referrer=no-referrer | img referrerPolicy=no-referrer |
---|---|---|---|---|---|---|
Chrome | N | Y | Y | Y | Y | Y |
Firefox | N | Y | Y | N | N | Y |
Edge/IE | N | Y | N | Y | N | N |
方法三:rel
<iframe src="auto-refresh.html" width="500" height="500" rel="noreferrer"></iframe>
<a href="test.html", target="_blank" rel="noreferrer noopener">Test</a>复制代码
方法四:代理转发
通过代理转发,可以把请求的 referer 去掉。
<img src="http://www.test.com/test?source_url=http://www.other.com/test.jpg" />复制代码
原文地址 blog.csdn.net
本文为作者原创文章,转载无需和我联系,但请注明转载链接。 【前端黑猫】