Fiddler(八)| 脚本示例

2017-07-28  本文已影响93人  夜境

本文章转载于搜狗测试

Fiddler在处理每个session时,脚本文件CustomRules.js中的方法都会运行,这些脚本可以使你任意修改复杂的session。通常,使用的比较多的都是用脚本来修改请求或响应

两个重要的函数

OnBeforeRequest

请求经过Fiddler发送给服务器之前会先调用这个函数,因此,如果想要修改请求,可以写在这个函数里

OnBeforeResponse

从服务器读完响应后,且在将响应发送给客户端之前执行的。通过修改这个函数,可以修改服务器的响应头或者响应体

一、修改请求的显示样式

在Fiddler的FiddlerScript里面有一个Go to下拉框,可以选择OnBeforeRequest,然后定位到该方法里面,其中,如下Fiddler给出的一个脚本示例

if(oSession.uriContains(".aspx")){ oSession["ui-color"]="red";}

意思很明白,就是当请求中含有.aspx,将请求的颜色置为红色,根据示例,我们可以自己写一些其他的脚本,例如:

if(oSession.uriContains("sogou")){ oSession["ui-backcolor"]="green";}

修改之后点击FiddlerScript左上角的Save Script进行保存,访问搜狗的任意网站,就能看到这些包含sogou的请求的背景色被设置为绿色,相应的,也可以修改ui-bold使字体加粗

二、修改请求

客户端发请求http://www.sogou.com?c=XXX,其中,c=0,1。c=0在客户端能够模拟,但是c=1没办法在客户端模拟,这时,借助Fiddler就可以达到修改请求的目的

if(oSession.uriContains("sogou")){

oSession.url = "www.sogou.com?c=1";

}

三、切换HOST请求头

当Fiddler接收到URL和Host请求头不匹配时,会在session的X-Original-Host标记中保存原始的Host值,然后用从URL解析到的Host 替换它。下面这段脚本会把请求发到原始Host请求头中指定的Host

if (oSession.BitFlags & SessionFlags.ProtocolViolationInRequest){

var sOverride = oSession["X-Original-Host"];

if (!String.IsNullOrEmpty(sOverride)){

oSession["X-overrideHost"] = sOverride;

oSession["ui-backcolor"] = "yellow";

}

}

四、隐藏返回图像的session

if (oSession.oResponse.MIMEType.Contains("image"))

{

oSession["ui-hide"] = "Script hiding images";

}

上一篇下一篇

猜你喜欢

热点阅读