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

相关文章
|
5月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
381 3
|
5月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
607 3
|
5月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
513 0
|
5月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
562 0
|
5月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
417 3
|
5月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
554 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
6月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
506 1
|
6月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1615 0
|
6月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
818 102
|
6月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
413 104

推荐镜像

更多