Qt实践| HTTP知识点-Qt填充referer请求头盗取图片
目录
基本概念
代码与实例
基本概念
HTTP协议头中的Referer主要是用来让服务器判断来源页面,即用户是从那个页面来的。网站通常用其来统计用户来源,看用户是从搜索页面来的,还是从其他网站链接来的。或者是从书签等访问,以便合理的定位网站。
Referer有时候也做防盗链处理,即下载时判断来源地址是不是在网站的域名内,否则不能下载或显示,以天涯网为例!
如,直接请求某一图片:
此时他判断是是referer,如果referer不对(这个主要是看程序员怎么写的),服务器那边会会302重定向。
如果是浏览器接收到302的重定向,就肯定会访问Location:后面的链接
如果Referer正确,即可得到对应的图片,这里用Qt来实现下
代码与实例
没有refere时是获取不到图片的
Fidder抓包如下:
有referer后:
看看图片:
源码如下:
#include <QCoreApplication>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QUrl>
#include <QDebug>
#include <QSslConfiguration>
#include <QEventLoop>
#include <QNetworkRequest>
#include <QFile>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QNetworkAccessManager *manager = new QNetworkAccessManager;QNetworkRequest *request = new QNetworkRequest;QSslConfiguration config;QSslConfiguration conf = request->sslConfiguration();conf.setPeerVerifyMode(QSslSocket::VerifyNone);conf.setProtocol(QSsl::TlsV1SslV3);request->setSslConfiguration(conf);request->setUrl(QUrl("http://img3.laibafile.cn/p/m/280148719.png"));request->setRawHeader("referer", "http://www.tianya.cn");QNetworkReply *reply = manager->get(*request);QEventLoop loop;QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));loop.exec();QFile file("hehe.png");if(!file.open(QIODevice::WriteOnly)){qDebug() << "hehe文件有毒,快跑!";return 0;}file.write(reply->readAll());file.close();delete request;delete manager;qDebug() << "完成,可以关了~!";return a.exec();
}
Qt实践| HTTP知识点-Qt填充referer请求头盗取图片相关推荐
- Referer请求头
本文分享自微信公众号 - code秘密花园(code_mmhy),作者:ConardLi 原文出处及转载信息见文内详细说明,如有侵权,请联系 1278556902@qq.com 删除. 原始发表时间: ...
- JavaScript 能否修改 Referer 请求头
正如题目,本文主题也很直白,主要就是围绕这个问题展开.JavaScript 能否修改 Referer 请求头?现在 JavaScript 的能力越来越强大,JavaScript 似乎无所不能,修改一个 ...
- 获取referer中的请求参数_javaweb之request获取referer请求头实现防盗链
在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer. 它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是: request.getHea ...
- Qt实践|HTTPS知识点-SSL socket获取百度首页
目录 基本概念 代码与实例 基本概念 这里要明确一点,HTTP/HTTPS是应用层协议,而socket一般指TCP/UDP协议,也就是在传输层中,而IP协议是在网络层中! 这个实例主要是撸socket ...
- Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书
目录 基本概念 代码与实例 基本概念 这里要先介绍几个类和函数 首先是QSslSocket:这个类提供了客户端和服务器之间的SSL加密socket连接.这个是基于TCP连接,可以传输加密数据,支持的协 ...
- Qt实践| HTTP知识点-接入某图片验证码系统查询余额
目录 基本概念 代码与实例 基本概念 这个是接入了某识别验证码系统,这个验证码系统有很多的接口,其中就有VC++接口,但个人觉得,这个接口不太好,因为本人想用C++ Qt框架实现,而这个Qt框架的最大 ...
- Qt实践|HTTP知识点-使用百度AI语音识别服务
目录 基本概念 代码与实例 基本概念 这里来简单介绍下百度的REST API文档,首先是获取Access Token 获取到了后,再发送请求,进行语音识别. 这里我采用Raw方式上传 这个就是百度AI ...
- Qt实践| HTTP知识点-接入某图片验证码系统识别验证码
目录 基本概念 代码与实例 基本概念 这里有一个查询余额的:https://blog.csdn.net/qq78442761/article/details/100096351 下面来看看官方API文 ...
- 利用Referer请求头防止“盗链”
一.介绍 在实际开发中,经常会使用Referer头字段,例如,一些站点为了吸引人气并且提高站点访问量,提供了各种软件的下载页面,但是它们本身没有这些资源,只是将下载的超链接指向其它站点上的资源.而真正 ...
最新文章
- was web 服务器性能测试,was web 服务器性能测试
- 【Python学习系列十四】IPython命令行式交互界面工具Jupyter
- FreeSql (三十三)CodeFirst 类型映射
- Android笔记 codeUI与html UI
- redis并发锁 thinkphp5_资深架构师经典总结:Redis分布式锁实现理解
- mvc做网站怎么在mvc中直接访问.html网页 [问题点数:20分]
- 吴恩达《机器学习》第八章:逻辑回归
- 在head标签内css代码,怎么在head区域引入css
- [导入]ASP.NET2.0中Tabs的简单实现
- 拖动获取元素_如何使用HTML5实现多个元素的拖放功能
- 联想Y7000安装显卡驱动
- 将Word文档转换成PPT教程
- 用Python如何计算两点间距离
- centOS7 清理系统垃圾
- 2022-2027年中国家用清洁产品行业发展监测及投资战略研究报告
- flutter小控件备忘
- Mtk ALPS Led驱动的加载过程
- 幼儿园案例经验迁移_幼儿生活经验“迁移”讲述的运用指导
- 顶级域名、一级域名、二级域名、子域名如何区分
- Unable to connect to test manager on xxxxx (The device is passcode protected)