FreeCookies 插件安装

:您的计算机需要已经安装Fiddler (如未安装,请至官网下载安装 http://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler

:进入Fiddler安装目录下的Scripts目录下,将FreeCookies.dll复制到该目录下  (下载请至:https://github.com/lulianqi/FreeCookies/raw/master/bin/Debug/FreeCookies.dll 或 http://lulianqi.com/file/FreeCookies.dll   )

:重启Fiddler即可在面板中出现 free cookies 标签

FreeCookie使用

  • 通过截获浏览器请求response 的head头,并修新增set cookie头,达到修改浏览器cookies的效果

1: 获取/编辑 cookies

如上图通过在Fiddler左侧session面板中选择任意请求,点击『Get Cookies』按钮即可获取该请求所带有的所有Cookies

 获取cookies后,会显示在UI界面中,A区域为cookies原始信息,B区域为cookies的格式化列表展示,C区域编辑区可以对B中单条cookie进行编辑

在B中选择任意cookie可在C区域对Key及Vaule进行编辑,点击『√』确认修改,『+』添加一条新cookie,『-』删除选定cookie  (被修改的cookie项背景颜色会改变)

2: 为cookie添加属性 (domain ,path 等  默认会为每个cookie添加 path = / 的属性)

在B区列表双击任意cookie项,弹出编辑框(如下图)

可在Attributes中修改属性 点击『comfirm』按钮确认修改 (水印为示例)

添加属性后会显示在B区

在A区域直接编辑

如果您了解Cookies的标准格式,您可以在A区直接编辑Cookies(当格式错误时该区文字会变为红色)

注意如果在A区对Cookies进行过编辑,所有cookie使用默认属性

可以复制保存A区的信息,用于后面的调试或发送给其他计算机使用。

3  向浏览器写入Cookies

编辑好cookies后,选择需要写入cookies的网站

在Url Filter 中填写需要写入的网站

选择『Inject Cookies』 『Inject Always』

Inject Cookies:  当浏览器发起请求且url包含Url Filter中的值,则cookies被写入浏览器,但仅写入一次即被置为失效 (因为一次写入浏览器就会得到指定cookies)

Inject Always:  当浏览器发起请求且url包含Url Filter中的值,则cookies被写入浏览器,该策略会一直有效,直到用户取消勾选

如图当浏览器请求baidu时,写入操作发生。(被修改过的请求在session列表中会显示黄色高亮,并有log打印)

个是因为Url Filter 仅匹配了个cookies路径不同)

若需要完全匹配则在Url Filter以*开头即可,全匹配需要带上http://协议名 及?后查询参数 (*https://www.baidu.com/   表示完全匹配首页请求,https://www.baidu.com/test 也不会被匹配)

如果 Url Filter填空则表示匹配任意请求

在浏览器中直接写入微信或支付宝公众号Cookie,到任意站点甚至本地ip进行本地调试,也可以在不同客户端浏览器之间共享cookies

  • 通过插件修改response

Free cookies 可以辅助修改请求的响应头及响应内容,主要是方便即时替换(对response的完全控制及其他编辑功能,可以直接使用Fiddler自带AutoResponser功能,使用方法详见http://docs.telerik.com/fiddler/knowledgebase/autoresponder

Change Response 也同样使用Url Filter 中的筛选,一旦匹配成功且Enable Change处于勾选状态,该请求内容的返回内容中Replace 指定字符串被替换为下方内容(上图可乐被替换为娃哈哈),同时右边heads列表中内容会被添加到响应头中

『Change Response』 : 启用Response修改功能

『Only Add Head』 : 对Response仅添加头部

『Regex』 : Replace中的内容是否为正则表达式

『Replace』 :需要替换的内容,如果该项为空,则代表整个替换(Response会被整个替换为下部文本框中内容)

被修改后的请求,在session列表中背景色会显示为暗红色

下图为将jd.com 网站内容中可乐替换为娃哈哈的效果

部分情况下我们只需要更改返回的heads,比如通知浏览器强制更新,或禁用缓存

下图为指定网页https://item.jd.com/4431446.html 禁用缓存(添加Cache-control: no-store返回头)的例子。

下图为直接替换https://www.baidu.com/ 的页面(替换的内容为bing的首页html内容)

将replace填空,下方内容填写完整的html(也可以是其他返回json,xml等)

  • 使用RAW模式完全控制相应(包括响应行及响应头)

使用RAW模式需要您对HTTP response格式有一定了解

点击如图 raw模式图标切换进入 Raw 编辑模式

『Please select template』:您可以选择一个http相应模板,然后在模板中进行编辑,当然您也可以不使用任何模板

『Enabled』:是否启用替换功能

『Response Direct』:勾选此项请求将直接返回客户端,而不向服务器发送请求

点击右侧关闭图标可退出Raw编辑模式

Url匹配仍然使用上文 Url Filter (匹配规则维持一致)

使用Raw  将baidu重定向到google

如上图在Url FIlter处填写匹配规则

选择302 Redirect模板,修改模板中lacation内容

在baidu下次请求时即会返回我们指定的内容 (如下图)

使用Raw模式直接返回文件等二进制数据

如图完成配置,在返回实体中按上图格式填写本地文件地址(可以在编辑区域鼠标右键选择add file 完成本地文件的添加)

效果如下图

FreeCookies插件源代码(gitbub :  https://github.com/lulianqi/FreeCookies   )

使用FreeCookies 控制浏览器cookies及修改http响应内容的更多相关文章

  1. java中设置http响应头控制浏览器禁止缓存当前文档内容

    response.setDateHeader("expries", -1); response.setHeader("Cache-Control", " ...

  2. HttpServletResponse常见应用——设置响应头控制浏览器的行为

    1.设置http响应头控制浏览器禁止缓存当前文档内容 1 response.setDateHeader("expries", -1); 2 response.setHeader(& ...

  3. 通过HTTP头控制浏览器的缓存

    通过HTTP头控制浏览器的缓存 浏览器缓存是提高用户体验和提升程序性能的一个很重要的途径,通过浏览器的缓存控制,可以对实时性要求不高的数据进行缓存,可以减少甚至不需要再次对服务器的请求就可以显示数据. ...

  4. Nginx实践篇(2)- Nginx作为静态资源web服务 - 控制浏览器缓存、防盗链

    一.控制浏览器缓存 1. 浏览器缓存简介 浏览器缓存遵循HTTP协议定义的缓存机制(如:Expires;Cache-control等). 当浏览器无缓存时,请求响应流程 当浏览器有缓存时,请求响应流程 ...

  5. Selenium_WebDriver_控制浏览器

    版权声明:本文为博主原创文章,转载请注明出处.  浏览器环境: ①GoogleChrome:60 ②chromedriver:2.30: 访问 操作 方法 示例 访问页面 void get(java. ...

  6. Egret--设置全屏,控制浏览器全屏

    1, 手机浏览器打开的项目的时候,浏览器的虚拟按键/标题栏, 使得即便设置全屏也没有变成全屏(好像JS 中有方法向浏览器请求全屏) 2, 加载资源, 关闭后卸载, 再次进入游戏依然很快.不过登陆游戏的 ...

  7. 通过selenium控制浏览器滚动条

    目的:通过selenium控制浏览器滚动条 原理:通过 driver.execute_script()执行js代码,达到目的 driver.execute_script("window.sc ...

  8. Selenium3 + Python3自动化测试系列三——控制浏览器操作

    控制浏览器操作 控制浏览器窗口大小 在测试过程中,我们在打开浏览器后,根据需求可自定义调整浏览器的尺寸大小.WebDriver提供了set_window_size()方法来设置浏览器的大小. 如果页面 ...

  9. 用JS实现控制浏览器F12与右键功能

    本文出至:新太潮流网络博客 用JS实现控制浏览器F12与右键功能,防止恶意窃取代码,或其他直接复制进去就好 //禁用右键 document.oncontextmenu = function () { ...

随机推荐

  1. 两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)

    背景: 上一篇:ASP.Net Core on Linux (CentOS7)共享第三方依赖库部署 已经交待了背景,这篇就省下背景了. 折腾的过程分两步: 第一步是:本机跑虚拟机部署试一下: 第二步是 ...

  2. docker中怎样设置开机启动--随容器的启动而启动服务?

    docker可以说给我们的部署带来极大的方便和可逢凶化吉性!(懂的同学自然懂) 在初步了解之后,我们就能简单使用docker了. 刚开始玩docker时,可以基于系统级别的镜像做定制,比如基于  ce ...

  3. 架构师入门:Spring Cloud系列,Hystrix与Eureka的整合

    和Ribbon等组件一样,在项目中,Hystrix一般不会单独出现,而是会和Eureka等组件配套出现.在Hystrix和Eureka整合后的框架里,一般会用到Hystrix的断路器以及合并请求等特性 ...

  4. Java集合详解4:HashMap和HashTable

    今天我们来探索一下HashMap和HashTable机制与比较器的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 ...

  5. java线程通信与协作小结 多线程中篇(十六)

      在锁与监视器中我们对Object中的方法进行了简单介绍 以监视器原理为核心,三个方法:wait,notify.notifyAll,可以完成线程之间的通信 当然,不会像“语言”似的,有多种多样的沟通 ...

  6. git使用教程指南

    前言  Git是一个开源的分布式版本控制系统.其核心就在于版本控制.  在实际编码过程中,我们往往会忘记上次对文件的修改内容.若是刚刚修改的还好说,撤销操作即可.但若这是你昨天做的修改并关闭了IDE呢 ...

  7. LVS负载均衡原理

    一.LVS基本原理概述 LB集群的实现,LB即负载均衡集群 硬件:F5 BIG-IP,Citrix NetScaler,A10,Array,Redware 软件:Lvs,nginx,haproxy,a ...

  8. C#列表页面

    前台页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx ...

  9. 简述ADO.NET的连接层

    前面曾提到过ADO.NET的连接层允许通过数据提供程序的连接.命令.数据读取器对象与数据库进行交互.当想连接数据库并且使用一个数据读取器对象来读取数据时.需要实现下面的几个步骤 * 创建.配置.打开连 ...

  10. 为什么单线程的Redis这么快?

    一. Redis简介 Redis是一个开源的内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(li ...