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

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

腾讯防水墙

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

基本原理:

前端认证 + 后端认证

前端认证

前端参数

id : 元素的id(必须)

data-appid : AppID(必须)

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

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

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

返回参数

et: 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],查看详细说明

原理浅析

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


  1. 前端带着 AppID 和 其他参数向腾讯验证中心验证
  2. 腾讯验证中心 将验证结果 ticket + randstr 返还给前端
  3. 前端 将得到的参数 ticket + randstr 传递给 后端
  4. 后端将前端传递过来的参数 aid/AppSecretKey/Ticket/Randstr/UserIP 向 腾讯验证中心 进行二次验证

如图

image.png

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

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

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


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


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

20181025185828336.png


//

相关文章
|
3月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
372 1
|
4月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
288 18
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
299 61
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
550 158
|
7月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
694 77
|
4月前
|
安全 测试技术 API
Python 单元测试详解
单元测试是Python开发中不可或缺的环节,能确保代码按预期运行、发现Bug、提升代码质量并支持安全重构。本文从基础概念讲起,逐步介绍Python单元测试的实践方法,涵盖unittest框架、pytest框架、断言使用、Mock技巧及测试覆盖率分析,助你全面掌握单元测试技能。
264 0
|
5月前
|
IDE 测试技术 API
python调试与测试
python调试与测试
|
11月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
5月前
|
人工智能 Java 测试技术
Java or Python?测试开发工程师如何选择合适的编程语言?
测试工程师如何选择编程语言?Java 还是 Python?多位资深专家分享建议:Python 入门简单、开发效率高,适合新手及自动化测试;Java 生态成熟,适合大型项目和平台开发。建议结合公司技术栈、个人基础及发展方向选择。长远来看,两者兼通更佳,同时关注 Go 等新兴语言。快速学习与实践才是关键。
|
6月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
173 10

推荐镜像

更多