js调试

前置知识

js基础知识

输密码一般输123456
记住(前几位):
md5(123456,32) = e10adc3949ba59abbe56e057f20f883e
md5(123456,16) = 49ba59abbe56e057
如果js是动态的  Disable cache勾不勾没什么区别

当我们要改包时  要勾选禁止缓存
因为不勾选的话 浏览器不会像服务器再次请求(如果请求的话 我们就没有办法拦截 就没有办法改包) 走的是自己的缓存
主机ip 47.93.223.11:443尽量用域名 不要用主机ip提交
不一定是真实的资源地址(CDN)


请求头是可以相信的   返回头是不可以相信的

1.搜索定位

搜索定位的位置比较准确搜到的位置比较多 要自己进行筛选容易搜不到
Axios vue react jquery

2.DMO事件断点

定位的位置比较靠前 容易搜不到

3.XHR断点

好处:定位的位置在发包函数  我们可以跟栈

缺点:只能用于xhr的数据包

两种发包方式:
1.js发包  -xmlhttp
2.html表单发包
1.xhr breakpoints进行过滤  也是支持正则的->导致断点失败

2.network面板进入发包函数

4.hook(原理:替换原方法)

一、jshook的三种方法

1)覆盖原函数

2)可以通过object.defineproperty 替换一个对象的属性

属性可能里面存的是方法 也有可能存的就是一个值(getter,setter)

(function(){
    Object.defineProperty(document,'cookie',{               
		set:function(val){                          
			return val;
		}
	});
})();

3)es6代理(不推荐)

二、hook是有时机

1.在控制台注入的hook 在刷新页面就失效了
  在网页加载第一个js的位置 第一行下断点 然后在控制台手动注入hook
  (有可能注入hook的时机还是会晚一点)
  
2.利用Fiddler的替换响应 注入hook
   这种的时机比较靠前
   
3.油猴 不推荐(因为浏览器会检测插件)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注