Python编程:腾讯防水墙原理浅析与Flask结合测试

简介: Python编程:腾讯防水墙原理浅析与Flask结合测试

腾讯防水墙

地址:https://007.qq.com/


基本原理:

前端认证 + 后端认证


前端认证

前端参数:

id : 元素的id(必须)

data-appid : AppID(必须)

data-cbfn : 回调函数名(必须)

data-biz-state : 业务自定义透传参数(可选)


接口发送的参数比较多,不做列举


返回参数

ret: 0, // 0 验证成功, 1 未通过验证

ticket: “String”,

randstr: “String”


后端认证

发送参数

aid (必填)

AppSecretKey (必填)

Ticket (必填) 验证码客户端验证回调的票据

Randstr (必填) 验证码客户端验证回调的随机串

UserIP (必填) 提交验证的用户的IP地址(eg: 10.127.10.2)


返回参数

response 1:验证成功,0:验证失败,100:AppSecretKey参数校验错误[required]

evil_level [0,100],恶意等级[optional]

err_msg 验证错误信息[optional],查看详细说明


原理浅析

现在捋一捋参数传递的方式


前端 带着 AppID 和 其他参数向腾讯验证中心验证

腾讯验证中心 将验证结果 ticket + randstr 返还给前端

前端 将得到的参数 ticket + randstr 传递给 后端

后端 将前端传递过来的参数 aid/AppSecretKey/Ticket/Randstr/UserIP 向 腾讯验证中心 进行二次验证

如图

image.png

所以,这个是前后端二次验证的机制,腾讯验证中心 充当了鉴权中心

关键点在于第四步,后端 直接向腾讯验证中心 进行最后确认

如果要破解,应该在步骤1上做文章,其他步骤有点难。。。


参考腾讯防水墙给出的文档,使用Flask做了一个简单的Demo,供参考


Demo地址:https://github.com/mouday/TencentCaptcha

image.png

相关文章
|
1天前
|
存储 人工智能 数据挖掘
Python编程入门:从基础到实战
【9月更文挑战第26天】 在这篇文章中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从Python的基本语法开始,然后逐步深入到更复杂的主题,如函数、类和模块。最后,我们将通过一个实际的项目来应用我们所学的知识。让我们一起开始这段Python编程之旅吧!
|
1天前
|
Python
探索Python编程中的装饰器魔法
【9月更文挑战第26天】在Python的世界里,装饰器就像是一把瑞士军刀,小巧而功能强大。它们让代码更简洁、可维护性更强。本文将通过实际示例,带你领略装饰器的魔力,从基础到进阶,一步步揭开它的神秘面纱。
9 2
|
1天前
|
Python
python编程获取续蜀山剑侠传:从目录名称、网址到内容
python编程获取续蜀山剑侠传:从目录名称、网址到内容
|
1天前
|
移动开发 Python Windows
python编程获取网页标题title的几种方法及效果对比(源代码)
python编程获取网页标题title的几种方法及效果对比(源代码)
|
1天前
|
Python
python编程获取《续蜀山剑侠传》目录信息:目录名称和网址
python编程获取《续蜀山剑侠传》目录信息:目录名称和网址
|
1天前
|
Python
告别低效!Python并查集:数据结构界的超级英雄,拯救你的编程人生!
告别低效!Python并查集:数据结构界的超级英雄,拯救你的编程人生!
5 0
|
2天前
|
数据挖掘 Python
Python数据挖掘编程基础
本章介绍了Python数据挖掘编程的基础知识,涵盖Python入门所需的命令、判断与循环、函数、库导入等内容,并重点讲解了数据分析预处理和建模常用库。通过学习基本运算、数据结构、字符串操作等,帮助读者快速掌握Python语言,为后续数据挖掘工作打下坚实基础。例如,通过代码`a=3`进行赋值,利用`a*3`执行乘法运算,使用`a**3`计算幂,以及通过对字符串的拼接和分割操作,展示Python的强大功能。
10 0
|
16天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
78 7
Jmeter实现WebSocket协议的接口测试方法
|
16天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
76 3
快速上手|HTTP 接口功能自动化测试
|
16天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
28 5