zoukankan      html  css  js  c++  java
  • PHP模拟登陆获取成绩信息

        首先用Wireshark抓包分析。在浏览器中进入西电研究生院的登陆页面http://210.27.12.1:90/login.jsp, 抓包得到的结果如下:

       1. 获取Cookie:

       

        从图中可以看到,此时已从服务器那里得到了Cookie。我做了个测试,如果停留在这个页面时间过长,Cookie就会失效,此时即使输入正确的用户名和密码,也不会正常登陆,而是出现以下情况:

        或者

        所以PHP模拟登陆第一步要做的就是访问http://210.27.12.1:90/login.jsp这个url并获得Cookie.根据抓包截图,发现有Host、User-Agent、Accept、Accept-Language、Accept-Encoding、Connection、Cookie这7个参数。其中设置User-Agent的PHP语句为curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0'),其他的暂时不会,就先不管了。所以目前语句是这样的:

       

        测试结果如下:

       

        2. 验证:

       

        由图中可以看到,这一步是要带着刚才获取到的Cookie和自己的用户名、密码向http://210.27.12.1:90/j_security_check 这个url POST数据,其中CURLOPT_USERAGENT设置为 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0',Accept和Accept-Language、Accept-Encoding、Connection、Content-Type、Content-Length应该不用管,Cookie值就是刚在第一步中获取到的,j_username和j_password则是需要用户填写的账号和密码,Referer自己构造,代码如下:

       

        测试结果如下:

       

        尼玛啊,又是400号错误。索性之前做过C#模拟登陆,这一步也是400,但是对于最终获取数据并无影响,先不管了。

        3. 进入系统主页:

       

        代码如下:

       

        测试结果如下:

       

       

        一开始我很疑惑,它不是应该把我主页的信息输出吗?后来想明白了,因为主页是用Frame实现的,自然没办法显示详细内容。

        4. 获取成绩信息

       

        代码如下:

       

        测试结果如下:

       

        Bingo! 拿到了。虽然最终实现了抓取目的,但还是有很多地方想不透彻。比如说在通过j_security_check进行验证的时候,用浏览器正常登陆的时候,向j_security_check POST数据后返回信息为:

       

        标志码为302,可是PHP模拟登陆的时候,这一步的返回信息为:

       

        标志码为400,且提示“Invalid direct reference to form login page”,为此我调试了半天,后来拿出以前的C#版本发现它在这一步也是这么个情况。难道模拟登陆时出现“Invalid direct reference to form login page”都可以忽略吗?求指点。

  • 相关阅读:
    如何在腾讯云上安装Cloud Foundry
    Chrome浏览器扩展程序的本地备份
    如何在Kubernetes里创建一个Nginx service
    如何在Kubernetes里创建一个Nginx应用
    在Mac里给Terminal终端自定义颜色
    linux sed命令详解
    跟我一起写Makefile--- 变量(嵌套变量+追加变量+overrid+多行变量+环境变量+目标变量+模式变量)
    makefile详解 嵌套执行make,定义命令包
    makefile学习笔记(多目录嵌套调用、变量使用)
    Makefile所有内嵌函数
  • 原文地址:https://www.cnblogs.com/cysolo/p/3016374.html
Copyright © 2011-2022 走看看