当前位置: 首页 > 科技观察

通过抓包,实现Python模拟登录各种网站,原理解析!

时间:2023-03-20 00:13:29 科技观察

一、教程介绍1.1基本介绍通过分析登录过程,使用Python模拟登录实验提供的网站,在实验过程中,您将学习和实践Python网络编程,Python实现的方法模拟登录,并使用Firefox抓包分析插件分析网络数据包等知识。模拟登录可以帮助用户实现很多操作的自动化,在不同的情况下有不同的用途。无论是自动化一些日常繁琐的操作,还是用于爬虫,都是非常实用的技能。本课程通过Firefox和Python实现,环境要求如下:Python库:urllib、http.cookiejar、DjangoFirefox要求:livehttp头插件(已提供)1.3资料1.4准备1)安装抓包插件-inLiveHttpHeaders2)启动网络应用程序并使用ps-aux|grepcodebox查询得到codebox的进程号,然后用kill-9进程号停止codebox进程。执行流程如下图所示:首先安装demo依赖的web框架django,测试是否安装成功:启动成功后,在浏览器中输入http://localhost:8000/polls,登录页面提示启动成功。2、分析登录流程要通过编程进行登录,首先需要了解一般Web应用的登录流程。2.1抓取请求2.2原理分析为什么是2个请求而不是1个?通过分析登录请求,发现登录成功后,服务器发送302重定向响应,服务器要求浏览器重新请求首页,导致第二次询问。我们再分析一下第二个请求,可以看到它比登录请求多了一个请求头:整个登录流程如下图所示:服务端如何区分不同用户的session?为什么登录成功后需要写回cookie?2.3总结对于服务端来说,登录=验证+写session。对于浏览器,login=发送登录信息+获取cookie和sessionid。可以说只要拿到sessionid就实现了模拟登录。有了它,我们就可以脱离体制。3、使用Python实现登录(简单示例)了解了登录过程的原理和细节后,开始用Python编写一个模拟登录程序。3.1导入模块不要忘记写文件头和导入必要的依赖模块3.2构造登录请求登录请求实体部分如下:全部Python代码:附加参数防止盗链。在任何地方引用。听起来很方便,但可能会导致你的资源被别人窃取。3.3发送请求并保存cookiePython代码如下:如果登录成功,可以在指定文件my_cookies.txt中看到sessionid。3.4使用cookies访问系统服务我们模拟登录成功后,直接通过opener打开这个url就可以使用这个系统服务了。代码实现如下:如果在另一个python文件中使用这个cookie,需要在打开url之前加载cookie:教程取自实验楼。