Web调试利器fiddler使用
fiddler官网:http://fiddler2.com/
http://wenku.baidu.com/view/053e79d776a20029bd642dc1
http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.

同类的工具有: httpwatch, firebug
Fiddler 如何捕获Firefox的会话
能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。
Firefox 上通过如下步骤设置代理
点击: Tools -> Options, 在Options 对话框上点击Advanced tab - > network tab -> setting.
看看Fiddler的基本界面

Fiddler中各种图标的含义

Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有
help 打开官方的使用页面介绍,所有的命令都会列出来
cls 清屏 (Ctrl+x 也可以清屏)
select 选择会话的命令
?.png 用来选择png后缀的图片
bpu 截获request
Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法
第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
第二种: 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpu
二、设置断点
请求前中断:可修改头部信息 右键——Edit Header
请求后中断:可修改返回信息
1.工具栏:Rules——Automatic Breakpoints——
Before Requests 在请求前中断
After Requests 在请求后中断
Disabled 无断点
Ignore Image 图片处不设断点
2.命令行:在Web Sessions List下的黑色输入框输入:
bpu 在请求前中断
bpafter 在请求后中断
bpu http:// 访问任何http协议的地址时中断
bpu http://.... 访问某个地址时中断
bpu .png 访问png后缀的请求时中断
看个实例,模拟博客园的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录
1. 用IE 打开博客园的登录界面 http://passport.cnblogs.com/login.aspx
2. 打开Fiddler, 在命令行中输入bpu http://passport.cnblogs.com/login.aspx
3. 输入错误的用户名和密码 点击登录
4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。
5. 结果是正确地登录了博客园

Fiddler中如何过滤会话
每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项,

二个选项是只监控以下网址,如只监控百度,在下面的输入框里填上 www.baidu.com
“No Host Filter”不设置hosts过滤
“Hide The Following Hosts”隐藏过滤到的域名
“Show Only The Following Hosts”只显示过滤到的域名 ,如www.baidu.com 文本框内输入需要过滤的域名,多个域名使用”;“分号分割。fiddler默认会检查http头中设置的host,强制显示http地址中德域名。
“Flag The Following Hosts”标记过滤到的域名。突出显示而已。
更多filter:http://blog.csdn.net/ohmygirl/article/details/17846199
过滤css.图片等:
设置步骤:
1.勾选 Request Headers 中的 Hide if url contains 过滤项
2.贴入下方正则表达式
|
REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav)(\?.*)?$
|
REGEX: 表示启用正则表达式
(?insx) 设置正则解释的规则, 忽略大小写等.
此表达式表示过滤掉 url 中包括 css, ico, jpg 等后缀的请求
利用fiddler伪造response绕过js验证:
很多网站把数据的校检放在了前端由JS程序完成,JS程序通过ajax请求服务器获得返回值,判断用户输入是否是正确的,为了防止ajax请求被伪造,一般会传递一个变动的回调参数,例如百度验证邮箱的地址是https://passport.baidu.com/v2/?regmailcheck&token=6a60f2edd88a4026f1b7aeaf4889cce4&tpl=tb&apiver=v3&tt=1358522488317&email=ssfsdfsfsssfsfsa%40sina.cn&callback=bd__cbs__109e3a
可以看出来回调参数是bd__cbs__109e3a ,109e3a 这个参数是变动的,返回值是bd__cbs__109e3a ({“errInfo”:{ “no”: “0″ }, “data”: {}}),所以如果伪造请求的话必须截取请求参数,并返回对应的标识符。
利用fiddler 的autoresponder 可以对请求的url和参数进行正则匹配截断,然后去请求另一个对应的处理程序返回结果。
例如我设置的rule editor :
regex:https://passport.baidu.com/v2/\?regmailcheck(.+)callback=(?<args>.*)$
http://hixss.sinaapp.com/s.php?s=${args}
s.php为处理程序
|
1
2
3
|
header("Content-type:text/plain"); $s=$_GET["s"];echo $s.'({"errInfo":{ "no": "0" }, "data": {}})'; |
请求重定向(模拟响应)Auto Responser
所谓请求无非就是需要调用到的一些资源(包括JS、CGI、CSS和图片等),所谓重定向就是将页面原本需要调用的资源指向其他资源(你能够控制的资源或者可以引用到的资源)。
- 你可以将前台服务器的诸多或者某个CGI在本地做个副本,如果正常网络访问环境下该CGI出现了BUG而导致开发环境崩溃时,可以先将这个CGI的请求重定向到本地副本,这样就可以继续进行开发调试你的页面,从而大量节省CGI维护的等待时间。
- 你也可以将多人同时维护的某个JS文件复制一份出来在本地,当你的开发调试收到他人调试代码干扰时,可以将这个JS的调用重定向到本地无干扰的JS文件,进行无干扰开发,功能开发完成并调试OK之后再将你的代码小心合入到开发环境中,这样就可以避免受到他人干扰专心搞你的模块开发,也就是说能够将JS文件脱离开发环境却不影响线上调试。
- 你还可以将样式文件或者图片指向本地如果需要的话。开发过程中的很多页面其实都是惨不忍睹的,究其原因很大程度上是因为缺少对应的样式文件或者没有图片资源,所以样式文件和图片的重定向会对美感稍有要求的开发人员带来福音。
此外,你还可以借此神器搞些有取的事,比如换换百度主页的图片欢乐一下。
打开百度首页,http://www.baidu.com/,首页图片地址为:
http://www.baidu.com/img/bdlogo.gif
在fiddler点击AutoResponder,点击Add Rule。
增加一个规则,然后编辑这个规则,(要勾选Enable automatic response和unmatched requests passthrough(不匹配的请求通过)。

点击save后就ok了,刷新百度,显示如下:

参考:http://tid.tenpay.com/?p=3011
Fiddler中查询会话
用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示

更多:
http://www.cnblogs.com/wtcsy/p/fildderwirte.html
Web调试利器fiddler使用的更多相关文章
- Web调试利器fiddler介绍
转载:http://blog.chinaunix.net/uid-27105712-id-3738821.html 最近在使用fiddler,发现这个真是非常最犀利的web调试工具,笔者这里强烈推荐给 ...
- Web调试利器fiddler(转)
http://blog.chinaunix.net/uid-27105712-id-3738821.html
- 【测试工具】http协议调试利器fiddler使用教程
转自:http协议调试利器fiddler使用教程http://bbs.phpchina.com/thread-207418-1-1.html Fiddler真乃神器!它和市面上常见的很多web调试器. ...
- 手机H5 web调试利器——WEINRE (WEb INspector REmote)
手机H5 web调试利器--WEINRE (WEb INspector REmote) 调试移动端页面,优先选择使用chrome浏览器调试,如果是hybrid形式的页面,可以使用chrome提供的ch ...
- WEB/HTTP 调试利器 Fiddler 的一些技巧分享
1.原理简介: Fiddler 是目前最强大最好用的 Web 调试工具之一,它能记录所有客户端和服务器的http和https请求, 允许你监视,设置 CGI 请求的断点,甚至修改输入输出数据.同类的工 ...
- web调试利器_fiddler
此文已由作者夏君授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一.fiddler简介 直接引用官网介绍 The free web debugging proxy for a ...
- Web调试利器OpenWindow
有些时候调试web页面,在循环里面我们不方便设置断点进行调试,或者调试起来比较麻烦,我们就可以用openWindow的方法打印出想要查看的信息,既方便又省时. 代码如下: OpenWindow = w ...
- web开发利器 fiddler
http://mccxj.github.io/blog/20130531_introduce-to-fiddler.html
- Fiddler(Web/HTTP调试利器)
简述 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddler的数据(指cookie.htm ...
随机推荐
- UVA-Matrix Chain Multiplication(栈)
Matrix Chain Multiplication Suppose you have to evaluate an expression like A*B*C*D*E where A,B,C, ...
- Swift 中类的初始化器与继承
首先,Swift 为类定义了两种初始化器来确保类中所有的储存属性都能得到一个初始化值.这两种初始化器就是「指定初始化器」(Designated Initializer)与「便利初始化器」(Conven ...
- ios7高级
1.实现控制器和视图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 ...
- Bootstrap 源码解析
前言 Bootstrap 是个CSS库,简单,高效.很多都可以忘记了再去网站查.但是有一些核心的东西需要弄懂.个人认为弄懂了这些应该就算是会了.源码看一波. 栅格系统 所谓的栅格系统其实就是一种布局方 ...
- Linux C语言遍历目录结构
遍历目录结构查找文件是很常用的功能,今天介绍一下使用Linux C 遍历Linux目录结构的方法: linux提供几个系统调用,以便于直接目录的读取和操作: DIR * opendir(const c ...
- Java学习之抽象类的总结
抽象类的特点:1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中,该类必须也被abstract修饰.2,抽象类不可以被实例化.为什么?因为调用抽象方 ...
- 一周学会Mootools 1.4中文教程:(2)函数
温故: 透过对上一节课的学习,相信大家对mt的选择器应该有了一定的认识了,我再放几个小示例让大家对选择器的复杂应用有所了解: <!DOCTYPE html PUBLIC "-//W3C ...
- Java 日期字符串与日期类型转换
1.SimpleDateFormat.format 把日期类型转化到指定格式字符串 public static String convToString(Calendar cld,String temp ...
- linux文件系统操作——底层文件访问
在不使用标准I/O的情况下,使用write,read,open实现对文件的复制操作,这些调用都是直接使用底层系统调用,完成从用户代码到内核代码的切换,消耗大量的系统资源,今天对此进行研究主要是 ...
- 【双模卡的相关知识】解SIM卡前需要知道的信息(SIM年分和厂商识别)
<ignore_js_op> 二.SIM版本问题SIM卡的版本有两种说法,一是有些是制造厂制定的,二是电信公司的制定.下面以移动为例,目前我们手里的SIM有几种版本:v0.v1.v2.v3 ...