Qt实践| HTTP知识点-Qt填充referer请求头盗取图片

583 篇文章 124 订阅
369 篇文章 20 订阅

目录

 

 

基本概念

代码与实例


 

基本概念

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();
}

 

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值