zoukankan      html  css  js  c++  java
  • js hook cookie

    //当前版本hook工具只支持Content-Type为html的自动hook
    //下面是一个示例:这个示例演示了hook全局的cookie设置点
    (function() {
        //严谨模式 检查所有错误
        'use strict';
        //document 为要hook的对象   这里是hook的cookie
        var cookie_ = "";
        Object.defineProperty(document, 'cookie', {
        //hook set方法也就是赋值的方法 
        //当前也可以hook get方法
         set: function(val) {
                //这样就可以快速给下面这个代码行下断点
                //从而快速定位设置cookie的代码
                console.log('Hook捕获到cookie设置->', val);
                cookie_ = val;
                return val;
                  },
         get: function(val) {
                //这样就可以快速给下面这个代码行下断点
                //从而快速定位设置cookie的代码
                console.log('Hook捕获到cookie获取->', val);
                return cookie_;
                  }
          });
    })();
    // ==UserScript==
    // @name         cookie
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       公众号:python学习开发
    // @include      *
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
        var cookie_cache = document.cookie;
        Object.defineProperty(document, 'cookie', {
            get: function() {
                console.log(cookie_cache);
                return cookie_cache;
            },
            set: function(val) {
                debugger;
                var cookie = val.split(";")[0];
                var ncookie = cookie.split("=");
                var flag = false;
                var cache = cookie_cache.split(";");
                cache = cache.map(function(a){
                    if (a.split("=")[0] === ncookie[0]){
                        flag = true;
                        return cookie;
                    }
                    return a;
                })
                cookie_cache = cache.join(";");
                if (!flag){
                    cookie_cache += cookie + ";";
                }
            },
        });
    
    })();
  • 相关阅读:
    redis和memcache的区别
    c语言行编辑程序
    C语言栈的实现
    双向链表
    静态链表的合并
    静态链表的创建
    链表
    将非递减有序排列(L L1)归并为一个新的线性表L2 线性表L2中的元素仍按值非递减
    C语言合并两个集合(L,L1) 将L1中不在L中的元素插入到L线性表中
    oracle--JOB任务
  • 原文地址:https://www.cnblogs.com/angdh/p/14865642.html
Copyright © 2011-2022 走看看