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

相关文章
|
人工智能 自然语言处理 安全
学不会编程也能写测试?AI让测试更平权
在传统的软件开发体系中,测试常被划分为“技术型测试”(如自动化、性能、安全)和“业务型测试”(如功能验证、用户体验)。前者掌握技术话语权,后者则更多依赖经验和流程规范。然而,随着大语言模型(LLM)等AI技术的迅猛发展,这一固有格局正被悄然打破:
543 10
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
1081 77
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
1325 86
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
1501 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
2917 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
524 2
|
搜索推荐 数据可视化 数据挖掘
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
本文介绍了一个基于Python Flask框架的招聘数据分析推荐系统,该系统具备用户登录注册、数据库连接查询、首页推荐、职位与城市分析、公司性质分析、职位需求分析、用户信息管理以及数据可视化等功能,旨在提高求职者的就业效率和满意度,同时为企业提供人才匹配和招聘效果评估手段。
905 0
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
|
关系型数据库 MySQL 数据库
如何使用Python的Flask框架来构建一个简单的Web应用
如何使用Python的Flask框架来构建一个简单的Web应用
454 0

推荐镜像

更多