CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制

这篇具有很好参考价值的文章主要介绍了CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:Eason_LYC
悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。
一个人的价值,在于他拥有的,而不是他会的。所以可以不学无数,但不能一无所有!
技术领域:WEB安全、网络攻防
关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路上事半功倍,少走弯路!
个人社区:极乐世界-技术至上
我们追求技术至上,这是我们理想中的极乐世界~(关注我即可加入社区)

1、为什么要写这篇文章

作为一名原创作者,非常关注点赞、收藏、评论数,这代表了作品的受欢迎程度,也是各位读者对我创作文章的实际反映。同时作为web安全领域的作者,DN兄实现这些功能的HTTP交互机制,也是要稍微看看的。
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言

2. CSDN点赞、收藏、评论的数据包分析

只要是B\S架构的应用或网站,绝大部分都是通过数据报文实现交互(即TCP\IP),CSDN博客网站属于最为标准的web网站,对其进行分析,首先就要获取交互的数据包。
之前文章有过基础介绍:
web安全最亲密的战友Burp Suite—网络攻防常用工具介绍–burp suit工具初体验一
web安全最亲密的战友Burp Suite2–target模块体验)
B站视频
网络攻防常用工具介绍–burp suit工具初体验一
web安全最亲密的战友Burp Suite2–target模块体验

2.1 点赞的前提是什么

回想我们在网站上的操作流程,首先要登陆才能进行后续的点赞或者收藏评论,所以要先进行登陆。

  • 正常登陆验证
    正常用户操作很简单,就是输入用户名和密码。程序以POST方式将数据包发送到服务器中,经过各种验证再返回结果。
  • 保持登陆状态即cookie
    不可能在每个操作前都要用户输入账户密码,这样太繁琐,不会有任何商用网站会这样对待自己的用户。所以在第一次登陆成功后,浏览器和后台服务器间要保存一个“凭证”,用于证明这个用户已经通过验证。后续用户拿着这个“凭证”就可以操作各种功能。这个“凭证”就是cookie
    抓包查看cookie中一共有28个字段。

Cookie:
uuid_tt_dd=???;
log_Id_pv=???;
Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=???;
Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=???;
Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac=???;
log_Id_view=???;
log_Id_click=???;
ssxmod_itna=???;
ssxmod_itna2=???;
UN=???;
BT=???;
p_uid=???;
UserName=???; 重点关注这个字段
UserInfo=???;
UserToken=???; 重点关注这个字段
UserNick=???;
AU=???;
dc_session_id=1???;
c_pref=default;
c_ref=default;
c_dsid=???;
c_first_ref=default;
c_first_page=???;
c_segment=???;
dc_tos=???;
Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=???;
dc_sid=???;
c_page_id=default

  • 验证凭证,到底是验证cookie中哪个字段
    这是个复杂的问题,因为根据设计理念不同,实现功能不同,会验证不同的cookie字段。况且我们没有相关文档说明,无法一一明确各cookie字段确切含义,怎么办?
    其实换一种思路就会发现问题很简单,按可能性由大到小测试一下就可以。我们只要测试出一种组合能达到我们的目的就行。所以经过仅仅2次测试就找到了cookie中证明你登录状态的两个字段
    • UserName
    • UserToken

登陆自己的账户,抓包将自己cookie中的这两个字段值保存下,方便以后使用

 设置个人账户信息,用于保持登陆状态
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) \
    Chrome/105.0.0.0 Safari/537.36'   # 设置一个正常的浏览器User-Agent值,比较稳妥
}
cookies = {
    'UserName': '我的csdn账户id',
    'UserToken': 'ni_ke_yi_cai_cai'
}

OK,现在保持登陆的问题解决了,下面我们继续分析。

2.2当我们给文章点赞时会发生什么?

实际操作并抓包就会看到大量数据包,经过删选发现关键的一个POST数据包。
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言
这个数据包报文主要内容如下(为了方便查看,不太重要的字段已经删除,敏感信息进行了处理)

POST //phoenix/web/v1/article/like HTTP/2
Host: blog.csdn.net
Cookie: UserName=eason612; UserToken=ni_ke_yi_cai_cai; 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: https://blog.csdn.net
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers

articleId=126951795     

看到这个数据包,可以很清晰的知道
点赞就是向链接https://blog.csdn.net/phoenix/web/v1/article/like,发送一个POST数据包,数据包内容为文章ID(articleId)
那么articleId如何获取?
其实只要细心就能发现,所有的文章点击进去,它的链接都是https://blog.csdn.net/用户名/article/details/126793183
这一串数字就是articleId,就是每个文章唯一的标识ID
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言

所以这个数据包所有需求,我们都能满足,是否就可以点赞呢?测试下就知道了。在此使用工具Apifox(一个非常流行的接口测试工具,感觉要比postman好用)
完整的测试数据包如下:
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言

csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言
后台响应结果成功,我们再用浏览器访问对应文章,查看实际结果
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言
成功!

2.3 我们收藏文章时会发生什么?

同样的思路,在收藏文章中,查看大量数据包时发现两个关键POST报文

  1. https://mp-action.csdn.net//interact/wrapper/pc/favorite/v1/api/folderListWithCheck
    这个报文的响应如下:返回一个json数据,查看后发现是本人所有的收藏夹明细,内容很多,最重要的就是每个收藏夹对应的id

{“code”:200,“msg”:“success”,“total”:0,“data”:{“result”:[{“Description”:“eason612的默认收藏夹”,“Username”:“eason612”,“FavoriteNum”:1712,“CreatedAt”:“2022-05-14T12:03:11.000+0000”,“CheckStatus”:0,"ID":16557983,“IsPrivate”:1,“FollowNum”:0,“UpdatedAt”:“2022-09-30T23:36:04.000+0000”,“Name”:“默认收藏夹”}…],“total”:9}}

  1. https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavorite
    csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言

请求包字段分析

  • url: 文章的标准完整链接

无论之前是短链接或是其他形式的链接,在跳转解析后,均会访问到这个标准样式的链接,格式为
https://blog.csdn.net/文章作者的ID/details/文章ID(articleId)
另外,在访问到指定文章页后,返回的大量数据中都能找到接下来分析的字段值

  • source:来源,一般均为blog
  • sourceId:和上面url链接的最后数字一致,其实就是上文说的文章ID(articleId)
  • author:被收藏文章的作者id
  • title:被收藏文章的标题
  • description:被收藏文章的描述。创作过文章的小伙伴都知道,发布前要填写的描述信息就在这里
  • fromType:来源类型,电脑端就默认为PC
  • username:操作者的本人id(登陆用户的id,上文提到的cookie中的username)
  • folderId:文件夹的id,就是上一个重要post数据包中返回的ID字段,用于指定收藏到哪个收藏夹中

响应报文字段分析

内容很多,但均是重复的,仅有一个字段表明是否收藏成功,值得关注。

  • msg:如是success则收藏成功,其他值则失败。

经过上述分析,发现收藏流程异常简单:
收藏就是向链接https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavorite,发送一个POST数据包,数据包内容为json

{
"url":"标准url",
"source":"blog",
"sourceId":"文章ID(articleId)",
"author":"被收藏文章的作者id",
"title":"被收藏文章的标题",
"description":"被收藏文章的描述",
"fromType":"PC",
"username":"登陆状态账户ID",
"folderId":"收藏夹id",
"newFolderName":""
}

以上这些字段值,在访问到指定文章页中(查看html页面源码),相对固定的位置处都能找到对应字段值,有兴趣的小伙伴可以利用脚本自动抓取这些内容。本文仅解析数据包,不在此点展开。

分析完,就来使用Apifox实际测试下
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言
csdn机器人点赞?,个人小工具分享,网络,web安全,python,web,开发语言
测试成功!

2.4如何评论?

Let’s go! 下一个功能是评论,继续抓包查看,果然发现关键POST数据包
https://blog.csdn.net/phoenix/web/v1/comment/submit

POST /phoenix/web/v1/comment/submit HTTP/2
Host: blog.csdn.net
Cookie: 此处省略一万字
Referer: XXX
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 120

commentId=&content=%E6%96%87%E7%AB%A0%E5%BE%88%E6%A3%92%EF%BC%8C%E6%94%AF%E6%8C%81%E5%8D%9A%E4%B8%BB&articleId=126951795

header中没有特别的,body中有些内容

  • commentId:评论ID 保持默认为空即可
  • content:评论具体内容,是经过了url编码的内容
  • articleId:文章ID,这个就非常熟悉了

没有新的内容了

需要注意的是,在测试时发现对评论有多项限制

  1. 评论每天有数量限制
  2. 对于评论有速度限制,过快的话,虽然响应成功,但是实际上没成功。
  3. 评论太短、一个账户对不同文章的评论不能完全相同,评论内容与文章无关,这些情况多次发生均会触发相关机制
  4. 其他用户举报,导致一段时间内不能发布评论
  5. VIP用户与非VIP用户在HTML源代码中class类命名和取值略有不同。

有了之前描述,会发现评论异常简单。

3. 梳理总结

经过上面的分析,点赞、收藏、评论的流程其实非常简单。

首先判断是否处于登陆状态(就是验证cookie),满足则可以执行后续任务。其次对于点赞、收藏和评论仅需要满足特定数据包的字段和值,只需保持填写正确。最后要注意评论条件,触发的话会造成数据包无论返回什么信息,实际页面上会发生js拦截或其他异常情况,造成失败。

  1. 登陆状态保持:设置特定cookie
    UserName: '我的csdn账户id',
    UserToken: 'ni_ke_yi_cai_cai'

  2. 点赞
    [POST] https://blog.csdn.net/phoenix/web/v1/article/like
    body: articleId=文章ID

    Content-Type: application/x-www-form-urlencoded; charset=UTF-8

  3. 收藏
    [POST] https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavorite
    body: JSON

    {
    “url”:“标准url”,
    “source”:“blog”,
    “sourceId”:“文章ID(articleId)”,
    “author”:“被收藏文章的作者id”,
    “title”:“被收藏文章的标题”,
    “description”:“被收藏文章的描述”,
    “fromType”:“PC”,
    “username”:“登陆状态账户ID”,
    “folderId”:收藏夹id,
    “newFolderName”:“”
    }

  4. 评论
    [POST] https://blog.csdn.net/phoenix/web/v1/comment/submit
    body: commentId=&content=你的任意评论&articleId=文章ID

    Content-Type: application/x-www-form-urlencoded; charset=UTF-8

4. 一键三连demo演示

演示脚本仅用于本文的分析验证

CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制文章来源地址https://www.toymoban.com/news/detail-834152.html

到了这里,关于CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux·从 URL 输入到页面展现到底发生什么?

    打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解! 总体来说分为以下几个过程: DNS 解析:将域名解析成 IP 地址 TCP 连接:TCP 三次握手 发送 HTTP 请求 服务器处理请求并返回 HTTP 报

    2024年02月16日
    浏览(53)
  • 【web实战-业务逻辑】评论点赞逻辑

        博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。 擅长

    2024年02月05日
    浏览(38)
  • 到底什么是机器学习模型?这篇文章终于讲明白了

    机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 **模型是机器学习的核心组成要素。**本文从模型的广义概念出发,引申出机器学习模型的基本定义,并就机器学习中容易混淆的概念

    2024年02月05日
    浏览(43)
  • Fiddler 到底能做什么?一篇文章给你详细介绍

    Fiddler是检查 Http 流量的最流行的工具之一。此工具可帮助我们非常轻松地测试 REST API / SOAP Web 请求。 题主的问题:Fiddler 到底能做什么。仔细思考,其实有两层意思: 第一层:Fiddler工具的应用范围 第二层:Fiddler工具的使用方法 为将这两层意思全部解决,所以本文分为6个章

    2024年02月05日
    浏览(83)
  • 颠覆世界的“数字孪生”到底是什么?这篇文章带你搞懂全部内涵!

    在春节很火的电影《流浪地球2》中,已经去世的小女孩图丫丫,被她的父亲重新将其个人的信息模型导入最强大的计算机而“复活”了。屏幕中的丫丫就是一个数字孪生体。我们可以看到她的一颦一笑,听到她跟你的对话,看到她做出反应。这就是数字孪生的另一特色,数字

    2024年02月01日
    浏览(84)
  • 基于Python的点赞、收藏博客

    3.1点赞 3.2取消点赞 经过对比,可以看到点赞和取消点赞是同一个接口,只不过响应结果中的status值不一样,点赞返回的是true,取消点赞返回的是false,那么我们请求一次后,如果返回的是true,说明点赞成功,如果返回的是false,那么我们再请求一次接口即可。 【weixin_38093

    2024年02月10日
    浏览(48)
  • 小红书点赞不显示怎么回事?小红书笔记评论被吞怎么办

    小红书作为一个互联网产品,是一个软件。既然是软件就会有一定的程序漏洞,这是无法避免的。但是很多时候其实并不一定是漏洞的问题。今天就来和大家谈谈小红书点赞不显示怎么回事,小红书评论被吞又是怎么一回事,这些难道都是程序性漏洞么?这篇文章就给大家讲清

    2024年02月05日
    浏览(85)
  • 亚像素算法(商用源码,点赞收藏)

    亚像素算法是用于在像素级别进行图像处理的算法。一种常见的亚像素算法是双线性插值算法, 它可以用于图像缩放和旋转等操作。 其中,x和y是坐标值,q11、q12、q21、q22是需要插值的四个点的像素值。该算法将x和y坐标转换为小数部分,然后进行双线性插值计算,以求得

    2024年02月05日
    浏览(62)
  • 【解锁未来】让微软Copilot介绍自己,再由ChatGPT润色文章,到底能成什么样?

    今天突发奇想,如果让 微软Copilot介绍自己,再由ChatGPT润色文章,到底能成什么样? 问:撰写关于微软bing的文章 微软bing是一款全球领先的搜索引擎,它可以帮助用户快速、准确、安全地找到所需的信息。微软bing不仅提供了丰富的搜索功能,如网页、图片、视频、新闻、地

    2024年02月05日
    浏览(46)
  • 信息化、数字化、智能化的区别到底是什么?这篇文章说清楚了!

    关于信息化、数字化和智能化之间的差别,我发现依然令人模糊,哪怕看上去有一些实际的例子。因此,我还是想写点文字把这三个词之间的关系和差别梳理一下,希望看完这篇文章的人能够清楚一些。 为什么大家对“信息化”、“数字化、“智能化”这三个词会有模糊的感

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包