李恒道 发表于 2021-12-4 18:08:28

[油猴脚本开发指南]基础的网络分析(三)

# 前文

这节课我们来基本学习一下网络抓包

我们先来看一下

![图片.png](data/attachment/forum/202112/04/174822vns4hpushou4szcs.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

昨天垃圾桶图标会清空我们的全部数据

![图片.png](data/attachment/forum/202112/04/174901mrf8axxaa18511fx.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

这里依次是暂停以及搜索,第三个是拦截

当我们想做每日签到之类的,不想让该请求向服务器发送,但是还想指导我们到底看到了什么就可以使用拦截

![图片.png](data/attachment/forum/202112/04/174946je4a4b66qo09ianp.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

拦截为一个url,类似于match匹配规则

# 请求分类

我们也可以选择查看的请求类型

![图片.png](data/attachment/forum/202112/04/175006e8oj8skj2snmqtuu.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

这里分别为所有,html文件,css文件,js文件,xhr请求,字体文件请求,图像,媒体,websocket,以及其他类型

我们可以多选,因为我们抓包一半不需要看其他的,只需要看xhr就行

![图片.png](data/attachment/forum/202112/04/175116uiwff7ct99chntci.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

我们先看左半边

状态:服务器告诉我门的这个请求的状态

方法:GET、PUSH、PUT等等,为请求的方法类型

域名:我们请求的域名地址

文件:我们请求的路径

发起者:到底由哪个js文件以及行数发起了这个请求,我们也可以在这里看到到底是XHR还是FETCH

类型:json通常为json化的对象,而plain为纯文本

传输:传输所占用的文件大小

大小:文件实际大小

接下来我们来了解一下右侧的

![图片.png](data/attachment/forum/202112/04/175423fcwzv3p3e33adea2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

首先显示了GET和路径,然后是状态,版本,传输,referer是跨域限制

响应头即服务器传输给你的头数据

请求头即你提交给服务器的头数据

注意,如果你写GM_xhr函数的时候,如果碰到一些乱七八糟的问题,推荐比对一下协议头,防止服务器对协议头的一些参数进行验证

![图片.png](data/attachment/forum/202112/04/175615mejw4qsqb5zr53se.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

Cookie为我们存储的证明我们身份的数据,在提交的时候一起携带了上去,GM_xhr在进行post的时候通常会自动带上,一般无需在意

请求为我们提交的数据

响应为服务器给我们的数据

堆栈跟踪是非常重要的一个东西,即调用函数一直到发送数据的函数顺序,我们通常在这里根据函数名就能找到非常多的信息,但是这里并没有太显眼,有机会大家可以自己看一看

耗时和安全性没什么用,我们可以忽略

![图片.png](data/attachment/forum/202112/04/175735hya7ybyn1cn1zwe1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

# Tips

### 那我应该怎么找到我想要的函数?

我们可以复制一部分的网址,最好是动态数据之前,域名之后

如www.baidu.com/search?151a531wda3dw

这个时候搜search通常有妙用

火狐为Ctrl+Shift+F

Chrome下方栏有搜索

![图片.png](data/attachment/forum/202112/04/175953wsllipsiccmc88ig.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

### 为什么我原样贴进去了post,但是不好使?

可能post存在加密,这个时候你要自己调试js代码,找到加密的位置,想办法自己重写一份或者调用原有的加密

也可以看一下协议头,确定自己的协议头与网页的协议头基本一致,没有太大的差别

然后打开油猴管理器的网络界面,对其进行抓包,与原网页的包进行对比,确定到底存在什么差异

以上如果都确定无误,可以考虑删除脚本放弃了

# 贴心小提示

如果是跟账户有关的数据,每次登录改变,但当次访问不改变的时候,可以尝试翻一下网页源代码

或查看存储

![图片.png](data/attachment/forum/202112/04/180237kzl0sz0lldw05xld.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")

Cookies存储为存储你的用户数据

会话存储为关闭页面,跳转页面等后悔清除

本地存储除主动删除以及设置过期时间外,一直存在

缓存存储是为了缓存Response对象,这个相对较为小众,未查到特别多的资料

Indexed DB是因为目前浏览器数据存储不适合存储大量数据

Cookies不超过4K,每次请求都会携带发送回服务器

而LocalStorage在2.5MB至10MB,根据浏览器不同

同时不提供搜索功能,不能建立自定义索引

所以发明了Indexed DB,是浏览器提供的本地数据库

可以被网页创建以及操作

适合存储大量数据,提供查找接口,简历索引等等

具体资料可以参考

http://www.ruanyifeng.com/blog/2018/07/indexeddb.html

那么这节课我们就基本了解了网络抓包的基本操作了

# 结语

撒花~

Hangover 发表于 2021-12-4 21:03:30

ggnb!!!👍

王一之 发表于 2021-12-28 18:28:53

哥哥牛逼!
页: [1]
查看完整版本: [油猴脚本开发指南]基础的网络分析(三)