首页 > 其他分享 >解决访问站外图片403(referrer)问题

解决访问站外图片403(referrer)问题

时间:2024-03-21 09:31:38浏览次数:26  
标签:请求 referrer 403 vue3 图片 css 站外

 我的博客原文:解决访问站外图片403(referrer)问题 

问题

我们在使用站外图片的时候,访问图片403,但是浏览器直接访问图片链接可以打开,这是为什么呢?

原因

http请求体的header中有一个referrer字段,用来表示发起http请求的源地址信息,这个referrer信息是可以省略但是不可修改的,就是说你只能设置是否带上这个referrer信息,不能定制referrer里面的值。服务器端在拿到这个referrer值后就可以进行相关的处理,比如图片资源,可以通过referrer值判断请求是否来自本站,若不是则返回403或者重定向返回其他信息,从而实现图片的防盗链。上面出现403就是因为,请求的是别人服务器上的资源,但把自己的referrer信息带过去了,被对方服务器拦截返回了403。

如何解决

在前端可以通过meta来设置referrer policy(来源策略),那么referrer有哪些属性参数呢?

属性描述
no-referrer不发送引用者信息。
no-referrer-when-downgrade默认。引用者标头不会被发送到没有 HTTPS 的源。
origin发送文档的来源(协议、主机和端口)。
origin-when-cross-origin对于跨源请求:仅发送协议、主机和端口。对于同源请求:还包括路径。
unsafe-url发送来源、路径和查询字符串(但不包括片段、密码或用户名)。该值被认为是不安全的。

所以针对上面的403情况的解决方法,就是把referrer设置成no-referrer,这样发送请求不会带上referrer信息,对方服务器也就无法拦截了。

单独图片设置

<img src="图片地址"  referrerpolicy="no-referrer"/>

全局设置

<meta name="referrer" content="no-referrer" />

成功解决!YYDS!今天就介绍到这里啦! 欢迎在评论区交流。

如果文章对你有所帮助,❤️关注+点赞❤️鼓励一下!博主会持续更新。。。。

往期回顾

 CSS多栏布局-两栏布局和三栏布局

 border边框影响布局解决方案

 css 设置字体渐变色和阴影

css 重置样式表(Normalize.css)

 css实现元素居中的6种方法 

Angular8升级至Angular13遇到的问题

前端vscode必备插件(强烈推荐)

Webpack性能优化

vite构建如何兼容低版本浏览器

前端性能优化9大策略(面试一网打尽)!

vue3.x使用prerender-spa-plugin预渲染达到SEO优化

 vite构建打包性能优化

 vue3.x使用prerender-spa-plugin预渲染达到SEO优化

 ES6实用的技巧和方法有哪些?

 css超出部分显示省略号

vue3使用i18n 实现国际化

vue3中使用prismjs或者highlight.js实现代码高亮

什么是 XSS 攻击?什么是 CSRF?什么是点击劫持?如何防御

标签:请求,referrer,403,vue3,图片,css,站外
From: https://blog.csdn.net/chaoPerson/article/details/136819267

相关文章

  • 20240320每日一题题解
    20240320每日一题题解Problem阿克曼(Ackermann)函数\(A(m,n)\)中,\(m,n\)定义域是非负整数(\(m\le3\),\(n\le10\)),函数值定义为:\(\mathit{akm}(m,n)=n+1\);(\(m=0\)时)。\(\mathit{akm}(m,n)=\mathit{akm}(m-1,1)\);(\(m>0\)、\(n=0\)时)。\(\mathit{akm}(m,n)=......
  • 20240320打卡
    第四周第一天第二天第三天第四天第五天第六天第七天所花时间1h5h3h代码量(行)212359274博客量(篇)111知识点了解Kotlin编写用户注册与登录功能jetpack的深入使用hilt依赖注入与kotlin协程等知识了解JetpckDagger-Hilt依赖......
  • 20240315-1-逻辑题目
    逻辑题目逻辑题目现在也是面试中常考的题目,也不清楚面试出这种题目的意义,可能就是考察面试人员是否逻辑清晰.这种题目没有什么好的方法,除非你见过原题,否则,只能根据所给出的条件慢慢分析,尽量不要用常规思路,希望大家要跳跃思维.如果实在不行就给出一种解法,可能......
  • 20240319天梯赛训练
    P2669[NOIP2015普及组]金币#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingldb=longdouble;#defineintlonglongusingvi=vector<int>;usingpii=pair<int,int>;constintmod=998......
  • 20240319每日一题题解
    20240319每日一题题解Problem判断一个数的结构是否为某个数重复两遍得到。例如,\(123123\)是重复两遍的数,而\(333\),\(809680\)​则不是保证输入的数字不超过longlong型范围。若是,则输出yes;否则输出no。Solution从数字的角度要想解决这个问题也不是不可以,但是不如将给定的数......
  • 算法模板 v1.10.1.20240319
    算法模板v1.1.1.20240115:之前历史版本已不可寻,创建第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”;删除“编译”-“手动开O优化”;修改“编译”-“CF模板”;删除“读写”;删除“图论”-“欧拉图”-“混合图”;删除“图论”-“可达性统计”;删除“数据类型”-“高精类”。......
  • 20240318打卡
    第四周第一天第二天第三天第四天第五天第六天第七天所花时间1h代码量(行)212博客量(篇)1知识点了解Kotlin编写用户注册与登录功能......
  • [20240313]使用tpt ashtop.sql脚本的困惑.txt
    [20240313]使用tptashtop.sql脚本的困惑.txt--//使用tptashtop.sql脚本遇到的问题,做一些分析以及说明:1.环境:[email protected]:9014/ywdb>@ver1PORT_STRING                   VERSION       BANNER---------------------------------------------......
  • 20240318每日一题题解
    20240318每日一题题解Problem若将一个正整数化为二进制数,在此二进制数中,我们将数字\(1\)的个数多于数字\(0\)的个数的这类二进制数称为\(A\)类数,否则就称其为\(B\)类数。例如:\((13)_{10}=(1101)_2\),其中\(1\)的个数为\(3\),\(0\)的个数为\(1\),则称此数为\(A\)......
  • 20240317每日一题题解
    20240317每日一题题解ProblemSolution提供两种写法,分别用到了string类和c风格字符串。string类是标准库中提供的用于处理字符串的类,避免了传统的C语言中使用字符数组来处理字符串时需要考虑的空间分配、长度控制等问题。c风格字符串实际上就是一个字符数组char[],以字符'......