首页 > 其他分享 >【iframe防盗链】解决iframe图片防盗链报403错误

【iframe防盗链】解决iframe图片防盗链报403错误

时间:2022-11-03 18:37:14浏览次数:84  
标签:__ url html 403 iframe path 防盗链

问题

在使用iframe框架引入其他网站时,图片资源因为阿里云防盗链原因,加载不出来,报403的错误。这个问题就算把第三方网站的html源码保存在本地,再用iframe框架载入,都无法加载图片。

图片来源于这篇博客,这里,因为我已经解决了,并且我还懒还累,真的不想再试一遍了。

思路

在网上查了很多,大家都说在public/index.html中加入<meta name="referrer" content="never">就可以打开了,但是我试了很多次并没有成功。

因为我是在访问网站时将网页源码保存到了本地,所以就在本地测试了一下,直接在保存源码的html文件中加入了<meta name="referrer" content="never">,然后再用iframe框架读取,发现可以访问到图片了。于是我在爬虫代码中加入了正则,匹配到<head>头,然后加入了mata标签。

import re, requests

def request_parse_url(url: str):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
    }
    res = requests.get(url, headers=headers)
    return res.text


def resolve_referer(row_html):
    html = re.sub(r'<head>', '<head><meta name="referrer" content="never">', row_html)
    return html


def save_html(html, path):
    with open(path, 'w', encoding='utf-8') as f:
        f.write(html)

if __name__ == "__main__":
    url = 'http://www.baidu.com'  # 随便写的
    path = "e://test"
    row_html = request_parse_url(url)
    html = resolve_referer(row_html)
    save_html(html, path)

然后是正常的vue代码,后面这两个relreferrerpolicy也是从网上看到拿来测试的,我这里是没什么效果,然后htmlPath请求的是我自己的flask接口,可以通过axios写成动态的接口,将文件名称作为params传入

<!-- row HTML展示页面 -->
<div id="rawhtml" v-loading="htmlStatus">
    <el-empty description="没有数据" v-if="isEmpty" class="empty"></el-empty>
    <iframe src="/test/link/html/view/pageSource.html" frameborder=0 scrolling="yes" id="iframe0" rel="noreferrer" referrerpolicy="origin"></iframe>
</div>

import os

@testFile.route('/link/html/view/<html_name>', methods=['GET'])
def view_html(html_name):
    html_path = os.path.join(current_app.config.get('HTML_DIR'), html_name)
    return send_file(html_path)

在测试vue的index.html中的<meta name="referrer" content="never">我没有删,我感觉删了也能用,但是我懒,没有办法,能用就行,懒得测试了。

标签:__,url,html,403,iframe,path,防盗链
From: https://www.cnblogs.com/wzqsblog/p/16855422.html

相关文章

  • 为什么HTTP代理会出现“返回403 forbidden”
    平时我们在使用HTTP代理的过程中,稍有不慎就会出现各种各样的错误代码,其中“403forbidden”就是常见的一种。它属于HTTP协议中的一个状态码(StatusCode),可以简单的理......
  • nginx “403 Forbidden” 错误的原因及解决办法
    多数是权限问题root/home/jd/code/dapingdist;这里要从home---->jd----->code,从外向内,一层层排查,是否有可读权限1.权限配置不正确这个是nginx出现403forbidden......
  • iframe 框架技术
    隐性转发<!doctypehtml><htmllang="zh_CN"><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"conten......
  • 当iframe.src重新指定一个url时会重新执行iframe的onload事件
    https://www.lmlphp.com/user/65927/article/item/1777474/<iframeid="indexFrame"name="index"width="800"onload='iFrameHeight("indexFrame");'frameborder="0"m......
  • BZOJ 4036([HAOI2015]按位或-子集和变换)
    Description刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行或(c++,c的|,pascal的or)操作。选择数字i的概率是p[i]。保证0<=p[i]<=1,Σp[i]=......
  • 网页通过iframe嵌入grafana
    进入grafana容器dockerexec-uroot-itgrafanash修改/usr/share/grafana/conf下的缺省配置文件defaults.ini我们添加参数:cfg:default.security.allow_embedding=tru......
  • BZOJ 4031([HEOI2015]小Z的房间-矩阵树定理+辗转相除)
    矩阵树定理,注意gauss消元辗转相除的写法#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#d......
  • iframe 预览pdf
    <iframe:src="pdfUrl"style="width:100%;height:100%"></iframe>url:{downLoad:'/sys/minio/download/'},pdfUrl:''lookOfdFile(filePath){let......
  • 20221403 《计算机基础与程序设计》第八周学习总结
    学期(2022-2023)学号(20221403)《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业......
  • 通过地址查看nginx管理下的视频403
        最近服务器上要保存一些视频,上传成功后通过nginx在公网查看,发现nginx报403,。查询资料后发现是nginx对文件没有权限导致的,对指定视频配置读取权限后依然403,进......