• dephi中用idhttp提交cookie


    以前不管是做什么软件,只要是关于网页post提交cookie的,我都是用TcpClient,为什么呢?
    因为我一直找不到idhttp提交Cookie的方法,今天终于有了结果。

    在Idhttp中,要想修改Cookie的代码,就要用到Request的RawHeaders中的Values值。
    这个值怎么用呢?
    Values接受一个string的值,该值指定了所访问的变量。
    如HTTP头是这样定义的(其中一些):
    Accept-Language: zh-cn
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
    Cookie: JSESSIONID=aoOYvjM-IKzh
    而Values的值就可以是Cookie,User-Agent,Accept-Encoding……等等。

    所以,代码应该是这样:
    try
      idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值'; //
      memo1.Lines.Add(idhttp1.Request.RawHeaders.Values['Cookie']);
      idhttp1.Post('/webmail/login.jsp',data1,data2);
      memo1.Lines.Add(idhttp1.Request.RawHeaders.Values['Cookie']);
      idhttp1.Request.RawHeaders.Values['Cookie'] := 'asdfasdf';
      memo1.Lines.Add(idhttp1.Request.RawHeaders.Text);
    except
      idhttp1.Get(idhttp1.Response.Location, data1);
    end;
    初一看,这代码是没有什么问题的。但,memo1的第一次ADD并没有任何值,奇怪。
    而第三次ADD就被改为了'asdfasdf',正是我们所希望的。
    我正是卡在了这里。为什么第一次idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值'; 没有结果呢?

    搞了很久。我才发现,在第一次传值的时候,RawHeaders跟本没有被初始化。而第三次经过Post以后,RawHeaders被初始化了,所以得到了我们所要的结果。
    也就是说,在写漏洞上传程序这些的时候,如果先Post让RawHeaders初始化,那就没什么意义了,因为Post的时候,Cookie就不能被带上了。

    正确的代码应该是这样:
    try
      idhttp1.Request.SetHeaders; //最重要的初始化。
      idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值';
      idhttp1.Post('/webmail/login.jsp',data1,data2);
    except
      idhttp1.Get(idhttp1.Response.Location, data1);
    end;


    这里,最重要的初始化是必需的。
    idhttp1.Request.SetHeaders
    这个过程如果没有。就会出错。
  • 相关阅读:
    XGBoost算法--学习笔记
    机器学习--学习书籍
    一天搞懂深度学习-深度学习新浪潮
    如何在 Office 365 环境中设置联机 Exchange 邮箱大小和限制
    玩转Office 365中的Exchange Online服务 之十一 怎样在Exchange Online中配置邮件传递限制《转》
    玩转Office 365中的Exchange Online服务 之六 了解Exchange Online对于邮箱使用的限制《转》
    Hyper-V Ubuntu修改分辨率
    k8s 集群基本概念<转>
    Azure 中 Linux VM 的 SSH 公钥和私钥对
    docker学习笔记(k8s) 《转》
  • 原文地址:https://www.cnblogs.com/taobataoma/p/858345.html
Copyright © 2020-2023  润新知