1.异常信息

2.解决方案

<meta name="referrer" content="no-referrer" /><!--页面头部添加-->

3.meta说明:

<meta charset="utf-8"> <!-- 设置文档字符编码 -->
<meta http-equiv="x-ua-compatible" content="ie=edge"><!-- 告诉IE浏览器,IE8/9及以后的版本都会以最高版本IE来渲染页面。 -->
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><!-- 指定页面初始缩放比例。--><!-- 上述3个meta标签须放在head标签最前面;其它head内容放在其后面,如link标签--><!-- 允许控制加载资源 -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
<!-- 尽可能早的放在文档 -->
<!-- 只适用于下面这个标签的内容 --><!-- 使用web应用程序的名称(当网站作为一个应用程序的时候)-->
<meta name="application-name" content="Application Name"><!-- 页面的简短描述(限150个字符)-->
<!-- 在某些情况下这个描述作为搜索结果中所示的代码片段的一部分。-->
<meta name="description" content="A description of the page"><!-- 控制搜索引擎爬行和索引的行为 -->
<meta name="robots" content="index,follow,noodp"><!-- 所有搜索引擎 -->
<meta name="googlebot" content="index,follow"><!-- 谷歌 --><!-- 告诉谷歌搜索框不显示链接 -->
<meta name="google" content="nositelinkssearchbox"><!-- 告诉谷歌不要翻译这个页面 -->
<meta name="google" content="notranslate"><!-- Google网站管理员工具的特定元标记,核实对谷歌搜索控制台所有权 -->
<meta name="google-site-verification" content="verification_token"><!-- 说明用什么软件构建生成的网站,(例如,WordPress,Dreamweaver) -->
<meta name="generator" content="program"><!-- 简短描述你的网站的主题 -->
<meta name="subject" content="your website's subject"><!-- 很短(10个词以内)描述。主要学术论文 -->
<meta name="abstract" content=""><!-- 完整的域名或网址 -->
<meta name="url" content="https://example.com/"><meta name="directory" content="submission"><!-- 对当前页面一个等级衡量,告诉蜘蛛当前页面在整个网站中的权重到底是多少。General是一般页面,Mature是比较成熟的页面,Restricted代表受限制的。 -->
<meta name="rating" content="General"><!-- 隐藏发送请求时请求头表示来源的referrer字段。 -->
<meta name="referrer" content="no-referrer"><!-- 禁用自动检测和格式的电话号码 -->
<meta name="format-detection" content="telephone=no"><!-- 通过设置“off”,完全退出DNS队列 -->
<meta http-equiv="x-dns-prefetch-control" content="off"><!-- 在客户端存储 cookie,web 浏览器的客户端识别-->
<meta http-equiv="set-cookie" content="name=value; expires=date; path=url"><!-- 指定要显示在一个特定框架中的页面 -->
<meta http-equiv="Window-Target" content="_value"><!-- 地理标签 -->
<meta name="ICBM" content="latitude, longitude">
<meta name="geo.position" content="latitude;longitude">
<meta name="geo.region" content="country[-state]"><!-- 国家代码 (ISO 3166-1): 强制性, 州代码 (ISO 3166-2): 可选; 如 content="US" / content="US-NY" -->
<meta name="geo.placename" content="city/town"><!-- 如 content="New York City" -->

备注说明:

html访问图片资源403问题(http referrer)

前言

  • 之前碰到一个问题,就是html中通过img标签引入一个图片地址,报403。但是这个图片地址直接复制出来在地址栏打开,却是看得到的。

  • 先说下解决方法: 在HTML代码的head中添加一句<meta name="referrer" content="no-referrer" />即可,后面再说下原理。
  • http请求体的header中有一个referrer字段,用来表示发起http请求的源地址信息,这个referrer信息是可以省略但是不可修改的,就是说你只能设置是否带上这个referrer信息,不能定制referrer里面的值。

  • 服务器端在拿到这个referrer值后就可以进行相关的处理,比如图片资源,可以通过referrer值判断请求是否来自本站,若不是则返回403或者重定向返回其他信息,从而实现图片的防盗链。上面出现403就是因为,请求的是别人服务器上的资源,但把自己的referrer信息带过去了,被对方服务器拦截返回了403。

  • 在前端可以通过meta来设置referrer policy(来源策略),具体可以设置哪些值以及对应的结果参考这里。所以针对上面的403情况的解决方法,就是把referrer设置成no-referrer,这样发送请求不会带上referrer信息,对方服务器也就无法拦截了。

隐藏referrer信息后,图片资源可以正常访问

  • 浏览器中referrer默认的值是no-referrer-when-downgrade,就是除了降级请求的情况以外都会带上referrer信息。降级请求是指https协议的地址去请求http协议,所以上面403的情况还有另一种解决方法就是,请求的图片地址换成http协议,自己的地址使用http协议,这样降级请求也不会带上referrer。

nginx配置图片防盗链

  • 最后再说一下这种根据referrer拦截,在服务器如何配置。我自己服务器用的nginx,这里就说下nginx的配置。首先打开nginx的配置文件:conf/nginx.conf,在server下面添加如下:
        location ~* \.(gif|jpg|png|jpeg)$ {valid_referers none  valid.url.com;if ($invalid_referer) {return 403;}}
  • 首先第一句以文件格式后缀匹配出图片资源路径,然后通过valid_referers添加合法的referer地址,加上none,表示没有传referer也是合法的,最后referer不合法的情况返回403。如果想跳其他地址或返回其他图片资源可以这样:rewrite xxx.xxx.com/xxx.jpg

orgin

  • http头部中还有一个与referrer类似的叫orgin的字段,在发送跨域请求或预检请求(preflight request)时会带上这个参数,他用来表示发起请求的服务器地址,这个参数是必定会传的,然后服务器端用此字段来判断是否允许跨域。

img 标签 访问图片 返回403 forbidden问题,meta标签的说明相关推荐

  1. img 标签 访问图片 返回403 forbidden问题

    之前在项目里,本地调试的时候,图片src引用了第三方网站的图片资源,导致控制台出现了如下的报错: 403 forbidden,说明了这个网络资源这样获取是被拒绝的,那么通过简单的百度,找到了相关的解决 ...

  2. img 标签 访问图片 返回403 解决方法

    错误信息 解决方案: 在HTML 的头部添加这个标签即可 <meta name="referrer" content="no-referrer" /> ...

  3. img 标签访问图片返回403forbidden

    做百度编辑器时,从秀米复制过来的文档,图片不无法加载,返回403的错 解决办法 解决这个问题只需要在头部添加一个meta <meta name="referrer" cont ...

  4. 配置https后访问返回403 forbidden

    今天在配置https的时候配置好,http能访问,https访问返回403 forbidden: 网上找了很多,改nginx.conf的user的 修改配置文件的 其实就是权限问题,是网站根目录的权限 ...

  5. java403forbidden_java – Spring boot – 返回403 Forbidden而不是重定向到登录页面

    在Spring Boot Web应用程序中,我有以下安全配置: @Override public void configure(HttpSecurity http) throws Exception ...

  6. Gitlab 访问报错403 Forbidden

    Gitlab 访问报错403 Forbidden 前言 查找原因 查找方案 解决 前言 今天上班的时候,几个开发同事说,Gitlab访问不了的,报错403 Forbidden.以往一直没有问题的 查找 ...

  7. img标签访问图片403(http referrer),直接访问图片链接可以打开

    先说下解决方法: 在HTML代码的head中添加一句, <meta name="referrer" content="no-referrer" /> ...

  8. 关于Linux访问web遇到403 Forbidden的问题

    问题: 大数据平台的集群监控地址是通过一个代理(ip:port)访问,在windows环境下设置代理是可以正常访问: 但在linux环境下设置了代理却不能访问:telnet和ping代理是可以,但cu ...

  9. 访问nginx出现403 forbidden

    描述 nginx安装后访问根目录,显示403 forbidden,查看error日志发现日志记录没有权限Permission denied. 2018/12/10 09:22:01 [error] 6 ...

最新文章

  1. Repeater 嵌套 Repeater
  2. Kubernetes入门——Kubernetes工作原理及使用
  3. 外国经典儿童读物合集pdf_帮助父母在线购买儿童读物–用户体验案例研究
  4. android开发蓝牙自动连接电脑上,Android蓝牙开发之自动连接设备
  5. 计算出你和另一个人的关系,准的邪门了!
  6. 大众考虑投资中国汽车零部件供应商 潜在目标包括国轩高科
  7. 程序员编程艺术:第三章续、Top K算法问题的实现
  8. 取消xp开机默认登陆账户
  9. Redis 主从复制的实现及配置
  10. 如何从右键弹出菜单中清空删除数据加清空前提问确定
  11. HenCoder文章汇总
  12. 大数据hadoop组件下载、windows环境搭建、官方文档查看详细步骤
  13. android 科技感动画,PPT最炫动画,3分钟学会超有科技感的扫描动画,轰动全场!...
  14. 时差怎么理解_时差是怎么形成的?
  15. 操作系统实验3—实现请求页式存储管理模拟程序
  16. 视频怎么转为GIF,如何制作GIF
  17. 【STL】rb_tree (multi)set (multi)map
  18. CodeForces - 55D UVALive - 6528
  19. 使用Markdown输出LaTex数学公式
  20. 《Python渗透测试编程技术:方法与实践》:信息的利用

热门文章

  1. 多文件Makefile编写
  2. CMutex使用时的注意事项,以及CMutex::Unlock何时会返回0
  3. 实验六:555定时器
  4. 单片机原理与应用技术(二)———花样流水灯汇编语言
  5. Linux系统日志 -
  6. springboot+vue.js校园快递代取小程序 一次创业经历心酸分享
  7. Veil框架工具使用(免杀Payload生成工具)
  8. 【八股文】12 JVM
  9. C语言小数点后六位怎么舍成四位,【JavaScript】小数点精度问题,小数点后两位toFixed(),把四舍六入五凑偶,修改成四舍五入...
  10. 2023千月影视v21原生双端带H5源码搭建