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. IDEA mybatis mapper类跳转到xml文件

    安装插件 free mybatis plugin,安装完成后重启,ctrl+单击即可跳转.

  2. Activity 之使用

    Activity 之使用 本文内容 1. 使用 Activity 显式简单界面 2. Activity 之间的跳转 2.1 startActivity 2.3 startActivityForResu ...

  3. centos6.7 配置MongoDB日志

    这篇日志记录了笔者最近在centos6.7的系统中配置MongoDB的流程,参考了博客https://www.centos.bz/2017/08/centos-6-5-yum-install-mong ...

  4. 如何接入银联“快速接入”产品API

    引言:使用银联开放平台的用户或多或少都接触过产品API吧,那么大家对于“快速接入”产品API是否还会存在一些疑问呢?因为我之前对“快速接入”模糊不清,所以整理的一份详细的资料,里面梳理了“快速接入”产 ...

  5. spring的核心组件及作用(一)

    Spring的核心组件有: Context     Core     Bean. 如果要在这三个核心组件上挑出一个最核心的组件,那就是Bean组件了. Spring的特性功能有:WEB ORM AOP ...

  6. [Abp 源码分析]零、文章目录

    0.系列文章目录 一.Abp 框架启动流程分析 二.模块系统 三.依赖注入 四.模块配置 五.系统设置 六.工作单元的实现 七.仓储与 Entity Framework Core 八.缓存管理 九.事 ...

  7. 详解IPTABLES

    详解IPTABLES Iptables 是Linux 内核集成的 IP 信息包过滤系统.如果Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Li ...

  8. ASP.NET Core中使用GraphQL - 第四章 GraphiQL

    ASP.NET Core中使用GraphQL ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间件 ASP ...

  9. DI是实现面向切面和面向抽象的前提

    DI越来越重要 DI就是依赖注入,现在来说,大部分框架都是以DI为基础组件的,每一个框架都有自己的DI组件,像dotnet core,java spring等,也都为自己的框架量身打造了DI工具. 面 ...

  10. JAVA_新建一个方法并且求三个数中的最大值

    package wac.wev.as;//新建一个方法在求最大值import java.util.Scanner; public class MaxLian {public static void m ...