首页 文章 精选 留言 我的

精选列表

搜索[标签页组],共10000篇文章
优秀的个人博客,低调大师

618京东到家APP-门详页反爬实战 | 京东云技术团队

一、背景与系统安全需求分析 1. 系统的重要性 上图所示是接口所属位置、对电商平台或在线商店而言,分类查商品都是很重要的,通过为用户提供清晰的商品分类,帮助他们快速找到所需产品,节省浏览时间,提升购物效率,是购物结算产生GMV的核心环节。那么电商平台为什么都很看重商品信息的爬取? a. 数据收集和分析:这些数据对于市场研究、竞争分析、价格比较等方面非常有价值。可获得有关产品趋势、消费者偏好、价格波动等信息,有助于企业进行决策和制定营销策略。 b. 价格监控和动态调整:可以实时跟踪和监控竞争对手的价格变化。企业可以根据市场情况及时调整自己的产品定价,保持竞争力,并更好地满足消费者需求等。 2. 风险评估 a. 系统安全、以及触发各种报警 b. 数据安全 c. 带宽和服务器资源消耗 d. 不良竞争等; 3. 618期间的爬虫问题 由于这个接口还比较特殊,我们在3个版本前刚迁移color网关,其他低版本使用的是另一个物理网关我们暂且称: B网关,另外在B网关还由于一些历史原因区分了Get 和 Post 两个接口对客户端提供。所以一共是3个接口。 客户端有多平台:h5, 微信小程序、支付宝小程序、android、ios、rn. a. 爬虫曲线明显从监控上看得出规律,另外性能也随之报警,并且不太确定是登陆爬虫还是不登陆爬虫。 b. 后台服务监控这3个接口过来的流量监控未区分color网关和B网关,还需要确定爬虫来源是从哪儿来 c. 各个平台的客户端都有爬虫,android的性能受影响更大, d. 另外各端迁移color网关的情况不太一致,有个别端有问题降级为B网关,另外h5和rn不存在版本的问题,一切全切,而ios、android、小程序还存在老版本调老接口的问题。 二、反爬策略选择 1. 可选择的反爬策略 B网关可使用的策略 a. 登录态-未登录拦截 b. 反人类策略-频控用户pin维度频控 c. 安全人员进行行为分析,将pin到加黑名单 color网关可使用的神盾策略 a. 登录态-未登录拦截 b. 神盾防刷能力之一---加固 c. 神盾防刷能力之一---反爬 d. 神盾防刷能力之一---小号 e. 神盾防刷能力之一---风控 2. 如何选择?结合系统现状--在用户体验和反爬虫之间平衡 a. 由于历史没开登陆态,优先选择不开登陆态的 b. 看下版本占比,先处置老版本看看效果也就是老的B平台 c. 如果发现ab执行完效果不太明显,考虑老版本开启登陆态比如开登陆态 d. 如果开完登陆态还不OK,考虑下是爬虫有登陆态在爬,做下频控 e. 如果还不OK,考虑是爬虫爬的高版本,需要在color上发力了 f. 联系成熟的color团队沟通看下爬虫问题,然后他们给出建议和可以做的操作,评估申请执行 g. 最终不行再考虑下登陆态 h. 反爬虫过程中双方是一直在对抗,比如某些策略生效,对方想办法破解,持续加严,持续想办法破 三、实施反爬措施 备注:下面所涉及的监控有几类 a. 服务器后台的监控分客户端:全来源(包含B网关的GET和POST和Color的)监控 b. B网关自己的监控key分客户端:只包含B网关(GET和POST的接口各有单独的)监控 c. Color网关的监控分客户端:只包含Color网关的 1. 找B网关的安全人员分析,识别到一些黑名单,加完之后效果不太明显,建议我们看下版本占比开启登陆态 2. 找埋点分析人员取数拿到数据isColor=1是color网关, 0是B网关;isLogin=1是登陆,0是未登陆 3. 单独看B网关和color网关的监控,发现都有爬虫,跟产品确认后开启老平台的登陆态校验-先用andorid端尝试看效果,某些竞品这类接口其实也开着登陆态拦截。 服务端针对andorid端监控 4. 开启后效果显著,就也开启了B网关接口各端登陆态,发现H5、小程序没啥效果,怀疑是有登陆态的爬虫,安全人员继续分析 服务端针对H5端的监控 5. 怀疑是登陆态的爬虫,安全人员想办法获取风险pin,方案是通过埋点通过行为分析取数,限制以下条件获取到35个pin,通晒后加黑名单 提数策略一 a.接口埋点时间范围:2023.05.30 2:00 - 2023.05.30 4:00 b.platcode = H5 c.单pin 访问 无 经纬度参数 d.单pin 访问 不同门店id 数量大于5个 提数策略二 a.接口埋点时间范围:2023.05.30 2:00 - 2023.05.30 4:00 b.platcode = H5 c.单pin 访问 >100 次 d.单pin 访问 中 不同门店id 数量大于10个 B网关的POST接口的H5端的监控 6. 同时意识到为什么B网关的GET接口还有量?是正常用户,还是全是爬虫?找各端确认接口调用情况。确定各端都没有在调老的GET接口,再严谨一点想确定下到底是哪个平台过来的,找B网关人看了下日志是H5端来的,再次确认H5也不存在版本这个概念,那么就认定都是爬虫,决定直接下掉。 B网关针对GET接口的监控 7. 小程序看着没啥效果,确定了下流量是从Color过来的,此时B网关能做的都做了,转战Color平台,联系神盾 先不考虑开启登陆态,看看神盾能做些什么策略调整,是否有效果。 8. 神盾人员分析验数结果之后: a. 神盾识别到一些没传uuid的情况,我们客户端各端确定uuid都必传,那么这部分就是刷子, 配置uuid为空就拦截的策略,来逼迫黑产传uuid来让反爬跟uuid相关的模型生效 b. 加固开启加严规则灰度10%, c. 反爬开启增加识别策略 color网关的安全监控效果 9. 到此这个阶段就相对比较OK了, 但是爬虫那边也在对抗破解改变策略继续爬,安生了几天,直到6月6号凌晨android平台有大量异常流量,再之后就开始慢慢的有规律的异常流量曲线,说明对方已经破解了开始继续爬了。并且android端性能监控比日常tp99翻倍,触发报警,怀疑可能在爬商品数据量大的商家 color网关android端6月6号激增异常流量 服务端android端监控6月7号开始了日常爬虫,说明已破解 反馈之后,补充识别策略,继续加严,另外小号有识别无拦截,是之前申请开启小号没通过,再次沟通开启,开启之后有效果。效果如下: color网关安全监控的小号监控效果 10. 但android还是有爬虫,性能没恢复,那么考虑开启频控,按单pin10次,无效果,单pin5次无效果,最终在夜里决定尝试开启下color网关的登陆态,效果立竿见影,性能恢复,说明是未登陆的用户来的爬虫,这也是为什么按pin限频效果不明显的原因,挑性能受影响最大的jddjAPP(android和ios)应用开启,由于神盾的操作都是基于接口+应用维度,所以一开全开。 服务端android端监控 11. 但有个问题是客户端各端迁移到color网关的时候都没有去处理兼容color网关的拦截默认返回结果所以各端显示异常,好在color网关可以mock出参,想到按B网关开启登陆态拦截的出参去mock来适配客户端,找B网关要出参json如下: { "type": "1", "code": "201", "msg": "为了您的账号安全,请重新登录" } 按上述出参mock后各端可以正常识别,但又发现新的问题是各个端的逻辑处理不一致, 登录态开启ios端用户体验不好,并无法跳转登陆 , 由于在color网关中android和ios是用的同一个应用名,而开启登陆态的维度是应用维度,所以不得不关闭登陆态。 12. 测试和客户端去确认前端各端是否有问题,以及后续对于登陆态的处理。 我们后端则跟前端一起思考下有没有别的方案,经过讨论有一种方案是mock反爬的出参code 605,但客户端接入color的3个版本中最老的那个版本没有接入反爬的sdk, 而网关开启登陆态又没法控制版本。 由于以上问题可行的方案是:ios端未接入反爬sdk的版本 降级调用B网关, 这样color可以开启登陆态。 但没采用这个可行的方案,因为降级为B网关需要层层审批,这个时候也临近大促结束,担心审批流程太慢,或者有别的未知问题,所以没采用。 13. 继续咨询color平台的神盾侧方案,给出的方案是反爬、加固、小号都继续上加严,观察有无客诉。加严到差不多的影响的情况下暂时告一段落。 14. 服务端兜底的反爬措施,我们具备的针对各端单独设置限流阀值的能力,解决单端有问题不影响其他端,将影响降至最低。以及快速扩容的能力。 四、color网关反爬效果 总体来说color的神盾相关的反爬还是很强大的,效果显著,在攻防之间一直有策略可以应对,点个赞,在此感谢相关人员,以及一起应对反爬的小伙伴们。 五、总结 在这次反爬经历中也有很多需要反思总结和提高的地方,下面列了几点给大家参考,希望本篇文章对大家有所帮助。 1.要尽量防患于未然,核心系统接口提前做好反爬的一些基础工作,避免被临时杀个措手不及。 2.涉及多网关的时候,要梳理爬虫的来源及特征,借助各物理网关的反爬能力,针对性的处理。 3.登录态开启需要提前测试确定影响,各端是否支持,用户体验是否受损,其它反爬措施同理。 4.微信小程序不能开启强登陆,会被认为违规进行处罚。 5.之前对于color的反爬能力知之甚少,低估了反爬能力以为开启了还有爬虫就没办法了,但事实上color还有很多策略是没有对外暴露的。 6.也不能认为爬虫就一定要反爬干净,因为规则越严格,越有可能误杀,需要再用户体验和反爬之间取个平衡,在保证用户体验的基础上尽量提高爬虫成本,减少爬虫对系统的影响。 7. 后端需要具备的能力针对各端单独设置限流阀值。解决单端有问题不影响其他端,将影响降至最低。 作者:京东零售 连迎迎 来源:京东云开发者社区 转载请注明来源

优秀的个人博客,低调大师

每一页都是干货,这10本Python新书,我必须推荐给你

十一长假归来,小编带来10本Python新书,每一本都是干货满满不可错过,同时分享你的假期阅读心得,还有机会获取哦。 1 Python 快速入门(第3版) 书名:《Python 快速入门(第3版)》 作者:[美]娜奥米·塞德(Naomi Ceder) 译者:戴旭 编辑推荐: 明确涵盖Python 3,全面介绍核心库、包和工具; 配备精深的习题; 新增5章与数据科学相关的内容。 这是一本Python快速入门书,基于Python 3.6编写,分为4个部分,第一部分讲解Python的基础知识,对Python进行概要的介绍,第二部分介绍Python编程的重点,第三部分阐释Python的高级特性,第四部分关注数据处理,最后给出了相关案例。本书框架结构清晰,内容编排合理,讲解循序渐进,并结合大量示例和题目,既适合Python初学者学习,也适合作为专业程序员的Python参考书。 2 Python编程无师自通——专业程序员的养成 书名:《Python编程无师自通——专业程序员的养成》 作者:[美] 科里•奥尔索夫(Cory Althoff) 译者:宋秉金 编辑推荐: 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一; 作者结合自身成功经验给出的答案; 本书每章采用“要点介绍+示例代码+术语总结+挑战练习”的模式,细化介绍编程入门所需的各个知识点。 从Python 3 中开始学习编程,并构建第一个程序;通过学习“面向对象的程序设计”并创建一个强大的Python程序来让读者掌握技能;学习使用Git、Bash、正则表达式和数据库等工具,然后使用学习的新编程技能来构建一个网络爬虫;学习计算机科学的基本原理,包括计算机架构、数据结构、算法和网络编程;学习为项目编程:涵盖了软件开发过程、测试和最佳编码实践;了解如何完成团队合作,并获得编程工作。 3 从零开始学Python(第2版) 书名:《从零开始学Python(第2版)》 作者:[美] 约翰·保罗·穆勒(John Paul Mueller) 译者:武传海 编辑推荐: “达人迷”是畅销美国近30年的经典图书品牌,经过亿万读者的检验; 面向零基础读者,巧用类比式描述,技术知识点轻松掌握; 书中还有一系列的Python周边小知识,教你更好地掌握Python,活学活用Python。 本书包含5个部分,共计20章内容,从Python入门知识开始讲解,涉及初级的编程知识、各种数据类型的使用、数据的存储和管理等内容,同时本书还包含对Python模块和库的介绍。通过阅读本书,读者可以全面了解与Python编程有关的各个细节,实现零基础学习Python编程。 4 Python算法详解 书名:《Python算法详解》 作者:张玲玲 编辑推荐: 6年Python开发经验,计算机硕士,杰出程序员和算法专家; 195个实例,使读者有更多的实践演练机会; 涵盖数据结构,线性表、队列和栈,树,图,查找算法,内部排序算法,经典算法问题的解决,图像问题的解决等内容。 全书共13章,基于Python分别讲解了算法是程序的灵魂,数据结构,常用的算法思想,线性表、队列和栈,树,图,查找算法,内部排序算法,经典的数据结构问题,解决数学问题,经典算法问题,解决图像问题,游戏和算法等内容。全书内容以“技术解惑”贯穿全书,引领读者全面掌握算法的核心技术 5 编程的乐趣:用Python解算法谜题 书名:《编程的乐趣:用Python解算法谜题》 作者:[美] 斯里尼•德瓦达斯(Srini Devadas) 译者:戴旭 李亚舟 许亚运 编辑推荐: 谜题是来自真实世界的应用,饶有趣味、易于描述; 算法谜题的趣味性和计算机编程的实用性之间搭建了一座桥梁; 斯里尼·德瓦达斯(Srini Devadas) 麻省理工学院(MIT)计算机科学和人工智能实验室(CSAIL)电子工程和计算机科学教授。 这是一本介绍通过解决复杂算法谜题来学习编程的书,书中的代码用Python语言编写。本书将对代码功能的理解与编程语言语法和语义的理解分离开来,从解每个谜题开始,先给出解谜题的算法,随后用Python语法和语义实现对应的算法,并适当做出解释。本书包含了21个谜题,其中很多谜题都广为流传,如多皇后、汉诺塔、验证六度分隔猜想等,每个谜题后面都配有不同难度的编程习题,帮读者加深对相关算法的理解。 6 Python程序设计与科学计算 书名:《Python程序设计与科学计算》 作者:尹永学 黄海涛 编辑推荐: 理论实践相结合:由具有多年教学和数学建模竞赛指导经验的高校教师与具有丰富实战经验的资深算法工程师合力写作而成; 轻松入门Python:从Python安装到基本语法、函数,精选有价值的Python内容进行介绍; 科学计算+数学建模:从科学计算实战到数学建模应用实例都有所介绍,带你开启数学建模的大门。 本书内容主要分为三部分:第一部分为基础部分,介绍Python语言的编程基础);第二部分为科学计算部分,对常用科学计算模块进行介绍,并包含实战;第三部分介绍科学计算中重要的应用数学建模。内容包含Python常用的数据科学模块,从编程入门开始,介绍Numpy、Scipy、Pandas常用的科学计算模块,简述matplotlib绘图模块,最后介绍了用于数学建模的模块Sklearn。 7 Python Qt GUI与数据可视化编程 书名:《Python Qt GUI与数据可视化编程》 作者:王维波 栗宝鹃 张晓东 编辑推荐: 本书适合具有Python编程基础; 想通过Python设计GUI应用程序或在GUI应用程序中实现数据可视化的读者阅读和参考。 本书介绍在Python中使用PyQt5编写GUI应用程序的方法,以及使用不同工具在GUI程序中实现数据可视化的方法。本书分为三大部分,分别介绍了PyQt5 GUI应用程序的框架结构等基础核心内容、PyQt5 GUI应用程序设计中常用到的各种功能的编程方法,以及使用PyQtChart、matplotlib和PyQtDataVisualization进行二维和三维数据可视化的设计方法等。 8 Python 3破冰人工智能:从入门到实战 书名:《Python 3破冰人工智能:从入门到实战》 作者:黄海涛 编辑推荐: 数学基础:从历年数学建模竞赛入手,解读人工智能中的数学方; 编程实践:100余个代码实例,全面讲解网络爬虫、数据存储与数据分析等内容; 算法应用:实战案例辅以丰富图解,详尽分析人工智能算法特性及其应用场景。 本书主要包含两部分,第一部分为基础部分(以数学建模历年赛题形式了解相关算法,同时将讲解相关AI模块下的Python常用包),第二部分为实战部分,对常用算法进行基本原理简介,并构建实战案例,同时包含自然语言处理的案例以及TensorFlow案例。 9 Python和NLTK自然语言处理 书名:《Python和NLTK自然语言处理》 作者:[印度] 尼天•哈登尼亚(Nitin Hardeniya)雅各布•帕金斯(Jacob Perkins) 迪蒂•乔普拉(Deepti Chopra) 尼什•斯乔希(Nisheeth Joshi) 伊提•摩突罗(Iti Mathur) 译者:林赐 编辑推荐: Nitin Hardeniya是一位资深的数据科学家,精通Python、NLTK、机器学习,与多家知名公司都有长期的合作; 本书适合快速学习NLTK的资深Python程序员以及机器学习领域的研究人员; 使用Python解决各种NLP任务的方式。 本书是一本运用NLTK和其他Python库构建专业NLP和机器学习项目的学习指南。本书共分为三部分。第一部分是NLTK基本模块,重点是如何创建文本分割器和解析器。第二部分介绍一些简单的文本处理方法和语言处理的基本技术。第三部分将会带领读者去实现自己的NLP项目。 10 Python机器学习 书名:《Python机器学习》 作者:[印]阿布舍克·维贾亚瓦吉亚(Abhishek Vijayvargia) 译者:宋格格 编辑推荐: 涵盖机器学习的所有主要领域; 每个概念的python代码示例; Jupyter Notebook脚本提供了用于测试和测试算法的数据集。 这本书通过数学解释和编程例子描述了机器学习的概念。每一章的内容都是从技术的基本原理和基于真实数据集工作实例开始的。在应用算法的指导下,每种技术都有各自的优点和缺点。本书提供了python中的代码示例。Python现在已经被全世界所接受。首先,它是免费、开源的。它包含了来自开放社区的非常好的支持。它包含大量的库,所以您不需要编写任何代码。此外,它可扩展为大量数据,适用于大数据技术。 -END -

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册