whistle常见使用场景
1.捕获网络数据包
在浏览器或者手机端按照上一篇文件进行配置并下载好证书(whistle 抓包工具的安装与使用),然后进行网络请求相关操作,在PC端whistle配置页面中可以看到对应的请求如下图:
徐州网站建设公司创新互联建站,徐州网站设计制作,有大型网站制作公司丰富经验。已为徐州上千提供企业网站建设服务。企业网站搭建\
成都外贸网站建设要多少钱,请找那个售后服务好的
徐州做网站的公司定做!2.过滤接口
匹配公式:h:(请求响应头)、s:(响应状态码)、i:(ClientIP 及 ServerIP)、m:(请求方法)、b:(请求响应内容),其它表示匹配 url(以上匹配都不区分大小写);并且支持取反操作,在关键词前加上!,表示会保留不匹配的请求
Network Columns:主要用于设置 Network 表头,或者拖拽重排等
3.接口重发
一般我们抓到一个有问题的请求,如果要复现就需要保存请求参数和请求头用postman重新构造一次或者页面刷新,比较麻烦,现在可以直接在whistle对请求进行重试
选择指定接口,右键-选择Action–>Replay
然后就可以看到新增了一条请求
4.更改部分参数并重发
如果我们需要修改部分参数,然后再重发,步骤如下:
右键请求,然后选择 Action ->Compose
或者,直接把请求拖到右边的控制台
然后就能在右边控制台看到对应的请求信息,就可以对请求 进行各种编辑了,然后再发送
5.模拟接口返回值
Rules写法:
pattern(匹配模式) operatorURI(操作uri)#默认是将匹配模式写在左边,操作uri写在右边
当有请求经过whistle,whistle 将请求url与pattern匹配,如果匹配到就执行operatorURI对应的操作,转发或者修改请求内容
Rlues | 说明 | 写法 |
---|
pattern(匹配模式) | whistle的匹配模式大体可以分成 域名、路径、正则、精确匹配、通配符匹配,其中 正则匹配、精确匹配、通配符匹配支持取非,即 !pattern,表示不匹配 pattern 关键字符;^(通配路径表示符)、$(精确匹配)、*(通配符)、!(取非) | 域名匹配(不仅支持匹配某个域名,也可以限定端口号、协议) 举例:
www.test.com operatorURI #匹配域名www.test.com下的所有请求,包括http、https、ws、wss,tunnel
https://www.test.com operatorURI #匹配域名www.test.com下的所有https请求
www.test.com:8888 operatorURI #匹配域名www.test.com 8888端口下的所有请求 路径匹配(指定匹配某个路径,也可以限定端口号、协议(http、https、ws、wss)等等) 举例:
www.test.com/xxx operatorURI #匹配指定路径下的所有请求
http://www.test.com/xxx operatorURI #限定请求协议,只能匹配http请求
http://www.test.com:8080/xxx operatorURI #限定请求协议和端口号,只能匹配http协议和8080端口的请求 正则匹配(正则的语法及写法跟js的正则表达式一致,支持两种模式:/reg/、/reg/i 忽略大小写,支持子匹配)且可以通过正则的子匹配把请求url里面的部分字符串传给operatorURI,pattern和operatorURI位置可以调换 举例:
* operatorURI #匹配所有请求
/keyword/i operatorURI #匹配url里面包含摸个关键字的请求,且忽略大小写 精确匹配(与上面的路径匹配不同,路径匹配不仅匹配对应的路径,而且还会匹配该路径下面的子路径,而精确匹配只能指定的路径,只要在路径前面加
即
可
变
成
精
确
匹
配
)
,
类
似
即可变成精确匹配),类似
即可变成精确匹配),类似url operatorURI,pattern和operatorURI位置可以调换 举例:
$http://www.test.com operatorURI #只能匹配到http://www.test.com/ (/浏览器会自动转),http://www.test.com/xxx是无法匹配到的 通配符匹配:包含通配符匹配,通配域名匹配、通配路径匹配 匹配模式必须以 ^ 开头(如果需要限制结束位置可以用 $),* 为通配符,支持通过$0…9获取通配符匹配的字符串,其中$0表示整个请求url 举例: 以 ^ 开头
^www.example.com/test/*** referer://http://www.test.com/$1 限定结束位置
^www.example.com/test/***test$ referer://http://www.test.com/$1 如果请求url为 https://www.example.com/test/abc?123test,这第一个配置里的 $1 = abc?123&test,第二个配置里的 $1 = abc?123,而 https://www.example.com/test/abc?123test2 只能匹配第一个 |
operatorURI(操作uri) | 这里介绍几个常用的 reqHeaders:修改请求头 举例:
www.ifeng.com reqHeaders://{test-reqHeaders.json} resHeaders:修改响应头 举例: www.ifeng.com resHeaders://{test-resHeaders.json} reqBody:把指定的内容替换请求内容(GET等请求没有内容没有替换一说) 举例:
www.ifeng.com method://post reqBody://{test-reqBody.html} resBody:把指定的内容替换响应内容(304等响应没有内容无法替换) 举例:
www.ifeng.com resBody://{test-resBody.html}
statusCode:设置响应状态码(状态码范围100~999),请求会直接根据设置的状态码返回 举例:
www.ifeng.com statusCode://500 更多操作参考官网:http://wproxy.org/whistle/rules/rule/replace.html |
1、直接写在规则中 比如直接返回一个 json,懒得新建文件 举例:www.test.com/get_list resBody://({msg:"dddd"}) 2.放在 whistle 左侧菜单的 Values 或者 本地文件 举例:
www.test.com/get_list resBody://{test.json} #test.json放在 whistle 左侧菜单的 Values
www.test.com/get_list resBody://C:\\Users\\Desktop\\test.json #test.json放在本地 3、内联在规则中 返回的内容有点多,但又不是很多多,不想新建文件和写在 value,那么就直接内联在规则集吧
www.test.com/get_list resBody://{test.json}
```test.json { msg:“1111” } |
我们给请求配置规则后,怎么确定它到底有没有匹配上
可以看 whisle 界面 左侧 Network 菜单点击你的请求,可以在右边的面板中看到请求匹配的规则(同时在请求列表中匹配到规则的会有特殊颜色标识)
如果匹配的规则没有成功,说明你的规则无效…
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文名称:whistle工具常用功能-创新互联
浏览地址:
http://shouzuofang.com/article/dsieed.html