这篇技术博文应该是这学期最后一篇了。
之前做的项目中使用了fsockopen模拟登陆飞信,然后进行发送短信的功能,然后又想到了模拟登陆学校的正方教务系统,就可以获取到数据了。于是使用火狐浏览器的firebug进行抓包。现在才明白高博学院的正方教务系统模拟登陆非常简单,下面是我抓包的过程:
登陆
页面请求
对于后面页面的访问,查看代码发现打开的方式是iframe,跟直接打开没有区别,但是直接打开连接会被跳转到登陆界面,所以这里在打开一个页面的时候肯定有一个参数判断,于是查看了页面源代码,没有与这类有关的数据提交。我分别用火狐和谷歌进行查看是否存在COOKIE,谷歌可以看到cookie,但是火狐却没有。以为登陆之后的每次请求都会通过cookie的检测(这里纯属菜鸟的愚见),关于是否存在cookie的问题,我通过了下面的代码进行验证:
1 | $cookie_file = tempnam(‘./temp’, ‘cookie’);//创建一个具有唯一文件名的唯一文件 |
最后查看生成的文件为空,所以判断页面的请求不需要cookie。
但是即没有cookie,又没有提交其它的数据,为什么直接打开的连接不被通过而跳转至登陆界面呢?
或许是请求的头信息不完整?在一个一个将请求的头信息不全后,发现在请求一个页面时,必须有Referer的头信息。OK一切解决!
代码
1 | //登陆 |
页面访问
1 | $url = ‘http://ip/(palpckurpyrxad55cuxranfz)/xsdjkscx.aspx?xh=学号&xm=姓名&gnmkdm=N121606';//访问某一页面的连接 |
我将这个进行了一些优化, 写成了一个类并提供下载, 高博的学生可点击这个Demo进行测试.
注:文章中可能有很多错误,也有可能出现无法使用的情况,因为此技术博文是我的学习笔记,我只是记载一些看到或者想到东西,所以我不推荐你来按照该博文的内容进行直接使用。谢谢~~