使用FreeCookies 控制浏览器cookies及修改http响应内容

FreeCookies 插件安装

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

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

 

 

3:重启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区域对KeyVaule进行编辑,点击『√』确认修改,『+』添加一条新cookie,『-』删除选定cookie  (被修改的cookie项背景颜色会改变)

 

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

  

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

 

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

 

 

 添加属性后会显示在B

 

在A区域直接编辑

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

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

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


      

向浏览器写入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打印)

 

 

 

在浏览器中可以看到Cookies已经被写入同时也加上了HttpOnly 属性(有2个是因为Url Filter 仅匹配了www.baidu.com, 所有 baidu.com/img 也匹配成功了,2cookies路径不同)

若需要完全匹配则在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   )

 

 

转载于:https://www.cnblogs.com/lulianqi/p/9481203.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node --- 使用node连接mysql

1.确保下载了mysql,且mysql处于打开状态. 2.确保下载了node,并成功安装:https://nodejs.org/en/ (小黑窗 node -v 查看) 3.安装node操作mysql的依赖包: # 命令行 npm install --save -mysql# 注:如果没有package.json 建议先使用 npm init -y 初始化正题 // app.js// 1. 引…

03 渲染元素ReactDOM.render

React与ReactDOM是2个不同的库,根节点内的所有内容(和DOM更新、渲染相关)由ReactDOM来管理一个React应用只有一个根节点用ReactDOM.render将React元素渲染到根节点 ReactDOM.render 参数1 React元素(React.createElement(类组件/…

javascript --- 异步按顺序执行

使用promise可以很优雅的封装一个异步函数,使其按指定顺序执行: // 异步读取文件操作 const fs require("fs"); function promiseReadFile(url) {return new Promise(function (resolve, reject) {fs.readFile(url, function(err, data) {if(err) {reject(err);} e…

web提高:负载均衡

1、集群 1、为什么建议在阿里云购买负载均衡 非常便宜,又好用,有稳定,有简单。自己搭建不了负载均衡,因为共有云不支持组播跑不了vrp协议。你不会集群的概念,你还是蒙蒙的。2、为什么使用集群? 1、小规模 …

node --- 一个很好用的包json-server

这个第三方包,可以将json文件暴露出来,用http获取. (data.json如下) 下载依赖: npm install --g json-server查看是否含有json-server json -sever --version启动json-server 参考:https://www.npmjs.com/package/json-server

利用ionic3进行上一行和左一行不动,中间移动的功能

首先在html中的写法是 <ion-header><ion-navbar><ion-title>历史数据</ion-title></ion-navbar></ion-header><ion-content ><div style"display:flex;width:625px;"><div class"head">地区</di…

jquery --- 阻止表单默认的提交行为,标准化表单的数据

表单如下: // .html <form id"topics_new_form" method"post" action"/topics/new"><div class"form-group"><label for"exampleInputEmail1">选择模块</label><selecet class"form-contr…

javascript --- spa初体验

首先使用express创建一个简单的服务器 创建文件夹 be-project # (确保安装了node,并配置好了环境) 在be-project目录下(命令行执行) npm init -y npm install --save express body-parse npm install --global nodemon// app.js const express require("express");…

python学习HTML之CSS(2)

1、边框的属性设置 PS&#xff1a;边框的高度和宽度可以采用百分比&#xff0c;但是高度方向的百分比基本无用&#xff0c;因为基数没定&#xff0c;参考没意义&#xff01;&#xff01; 2、内边距和外边距 3、在右下角添加一个“回顶部”的标签。 <div></div>中的…

06 事件处理函数绑定与事件对象

事件处理函数绑定 DOM事件处理 addEventListener or onclick function(){} 纯小写React元素也采用了类似DOM0标准中的事件属性定义的方法 小驼峰 JSX <button onClick{ this.doSth }></button>直接创建React元素 React.createElement(button,{onClick: { this.…

07、08 条件渲染、列表渲染

条件渲染 React没有像v-if、v-show这样的指令&#xff0c;需要使用JSX表达式组合而成 // 与运算 三目 // 判断表达式一定是false/null/undefined时才不会被渲染&#xff0c;0、空字符串、NaN会显示 // 如果render函数返回null&#xff0c;不会进行任何渲染 ......state {showL…

面向对象命名空间、组合

一 类命名空间与对象、实例的命名空间 创建一个类就会创建一个类的名称空间&#xff0c;用来存储类中定义的所有名字&#xff0c;这些名字称为类的属性 而类有两种属性&#xff1a;静态属性和动态属性 静态属性就是直接在类中定义的变量动态属性就是定义在类中的方法class Pers…

css --- 使用媒体查询当屏幕宽度小于某个值时,隐藏掉某个类

Bootstrap提供了一个封装好的类: .hidden-xs: 当屏幕宽度<768px时隐藏 .hidden-sm: 当屏幕768px < 宽度<992px时隐藏 .hidden-md: 当屏幕992px< 宽度<1200px时隐藏 .hidden-lg: 当屏幕宽度>1200px时隐藏 下面使用css3的 媒体查询来实现: media screen and…

css --- 伸缩布局,让图片居中

很明显,想要星星位于文字的正下方. // html <section id"lz_about" class"hidden-xs hidden-sm"><div class title text-center"><h1><strong>关于我</strong></h1><img src"./imgs/star.jpg" cla…

10 非受控组件以及受控与非受控的选择方案

含义 非受控组件&#xff1a;表单数据不受控与state的&#xff08;未绑定value&#xff09;&#xff0c;使用React ref从DOM节点中获取表单数据的组件提示refs弃用 class MyForm extends React.Component {constructor(props) {super(props)}submit (e) > {e.preventDef…

wampserver3.0.6 外网 不能访问

# 开始 今天在服务器上安装了wampserver3.0.6 然后在我的电脑浏览器上面打开服务器ip提示 Forbidden 下面一行小字提示没有权限访问"/"目录 # 解决 打开 httpd-vhost.conf 文件 修改成如下 # Virtual Hosts #<VirtualHost *:80>ServerName localhostServerAlia…

javascript --- 在linux上部署项目

最近对照视频,用bootstrap jquery 写了一个纯前端页面.想把它放在服务器上,供远程使用. 准备服务器和域名 我服务器和域名是在腾讯云上租的,网址: https://cloud.tencent.com/ 注: 域名很便宜,挑个好的哈哈哈… 服务器(阿里云有个学生价…但是我那个学生价的账号找不到了…)…

11 父子组件数据关系与状态提升

含义 状态提升&#xff1a;两个组件&#xff08;无父子关系&#xff09;共享一个数据并且同步数据变化类组件调用&#xff08;实例化&#xff09;的时候&#xff0c;组件内部的状态是唯一且独立的组件嵌套与调用&#xff0c;和是类组件&#xff08;render&#xff09;还是函数…

工具分享 --- 分享一个在线制作ico的网站

还不错… 生成后一般放在imgs的下面. link:favicon tab 导入链接http://www.faviconico.org/

laravel迁移文件

laravel迁移文件的命令 Laravel鼓励敏捷、迭代的开发方式&#xff0c;我们没指望在第一次就获得所有正确的。我们对于自己编写代码,可以通过迁移文件,不断的重复去测试.对于工作&#xff0c;我们开发一个完整的项目,是需要我们每个人相互配合,就好比用svn,git版本控制工具来存储…