目录

基本概念

代码与实例


基本概念

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请求头盗取图片相关推荐

  1. Referer请求头

    本文分享自微信公众号 - code秘密花园(code_mmhy),作者:ConardLi 原文出处及转载信息见文内详细说明,如有侵权,请联系 1278556902@qq.com 删除. 原始发表时间: ...

  2. JavaScript 能否修改 Referer 请求头

    正如题目,本文主题也很直白,主要就是围绕这个问题展开.JavaScript 能否修改 Referer 请求头?现在 JavaScript 的能力越来越强大,JavaScript 似乎无所不能,修改一个 ...

  3. 获取referer中的请求参数_javaweb之request获取referer请求头实现防盗链

    在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer. 它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是: request.getHea ...

  4. Qt实践|HTTPS知识点-SSL socket获取百度首页

    目录 基本概念 代码与实例 基本概念 这里要明确一点,HTTP/HTTPS是应用层协议,而socket一般指TCP/UDP协议,也就是在传输层中,而IP协议是在网络层中! 这个实例主要是撸socket ...

  5. Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书

    目录 基本概念 代码与实例 基本概念 这里要先介绍几个类和函数 首先是QSslSocket:这个类提供了客户端和服务器之间的SSL加密socket连接.这个是基于TCP连接,可以传输加密数据,支持的协 ...

  6. Qt实践| HTTP知识点-接入某图片验证码系统查询余额

    目录 基本概念 代码与实例 基本概念 这个是接入了某识别验证码系统,这个验证码系统有很多的接口,其中就有VC++接口,但个人觉得,这个接口不太好,因为本人想用C++ Qt框架实现,而这个Qt框架的最大 ...

  7. Qt实践|HTTP知识点-使用百度AI语音识别服务

    目录 基本概念 代码与实例 基本概念 这里来简单介绍下百度的REST API文档,首先是获取Access Token 获取到了后,再发送请求,进行语音识别. 这里我采用Raw方式上传 这个就是百度AI ...

  8. Qt实践| HTTP知识点-接入某图片验证码系统识别验证码

    目录 基本概念 代码与实例 基本概念 这里有一个查询余额的:https://blog.csdn.net/qq78442761/article/details/100096351 下面来看看官方API文 ...

  9. 利用Referer请求头防止“盗链”

    一.介绍 在实际开发中,经常会使用Referer头字段,例如,一些站点为了吸引人气并且提高站点访问量,提供了各种软件的下载页面,但是它们本身没有这些资源,只是将下载的超链接指向其它站点上的资源.而真正 ...

最新文章

  1. was web 服务器性能测试,was web 服务器性能测试
  2. 【Python学习系列十四】IPython命令行式交互界面工具Jupyter
  3. FreeSql (三十三)CodeFirst 类型映射
  4. Android笔记 codeUI与html UI
  5. redis并发锁 thinkphp5_资深架构师经典总结:Redis分布式锁实现理解
  6. mvc做网站怎么在mvc中直接访问.html网页 [问题点数:20分]
  7. 吴恩达《机器学习》第八章:逻辑回归
  8. 在head标签内css代码,怎么在head区域引入css
  9. [导入]ASP.NET2.0中Tabs的简单实现
  10. 拖动获取元素_如何使用HTML5实现多个元素的拖放功能
  11. 联想Y7000安装显卡驱动
  12. 将Word文档转换成PPT教程
  13. 用Python如何计算两点间距离
  14. centOS7 清理系统垃圾
  15. 2022-2027年中国家用清洁产品行业发展监测及投资战略研究报告
  16. flutter小控件备忘
  17. Mtk ALPS Led驱动的加载过程
  18. 幼儿园案例经验迁移_幼儿生活经验“迁移”讲述的运用指导
  19. 顶级域名、一级域名、二级域名、子域名如何区分
  20. Unable to connect to test manager on xxxxx (The device is passcode protected)

热门文章

  1. 黄聪:ThinkSAAS开发文档 常用函数 模版修改
  2. 结合MSDN理解windows service 服务安装的三个类。
  3. 反编译工具Reflector 4.2 汉化版
  4. 零基础学习什么编程语言比较合适?别的不说,听说大佬都学了这个!
  5. 知乎神回复:普通程序员一天的工作生活是怎样的?网友实名羡慕!
  6. 查看Jar包中Class类的编译环境jdk版本
  7. 数字化转型难?那是你没搞懂这5个关键点
  8. 3个图表突出数据显示小技巧,帮你一秒锁定关键信息
  9. 脱离业务的技术架构,都只是一团废纸,教你从0-1建设业务架构
  10. 让主页或Blog日访问量增加3000