随笔记录下某网站禁止通过F12, Ctrl+Shift+I等快捷键来打开开发者工具,其次通过浏览器宽高定时来重定向。
- 目标网站
aHR0cHM6Ly93d3cuemhpaHUuY29tL21hcmtldC9wYWlkX2NvbHVtbi8xNjkxOTY2MTg4MzY2ODYwMjg4L3NlY3Rpb24vMTc1MjcyNjI3MjMzMjIxMDE3Nw==
-  问题描述 当我们通过F12或者Ctrl+Shift+I去打开开发者工具的时候,并不能打开,没有任何反应,这个时候猜测,有可能是触发了快捷键或者功能键,被禁止,然后我们另辟蹊径,又通过右上角->更多工具->开发者工具先打开,然后再粘贴网站,发现几秒之后重定向到空白页面,这个时候猜测可能检测了浏览器宽高啥的,但是我们打开如下图模式,再打开网站,还是重定向到空白窗口,这个时候就 需要通过断点来进行分析 

-  进行script断点分析 打开开发者工具,然后进行script断点,然后打开目标网站,会断住,然后一直跳过,会来到一个可疑的js如下: 
  然后进行搜索123,发现有3处  其中一段js正是监控了F12如下: e.addEventListener("keydown", (function(n) {var i = (n = n || e.event).keyCode || n.which;if (123 === i || t(n, i) || o(n, i))return F(e, n) } ), !0)为什么这里是123呢,搜索相关的功能键码表如下: 按键 键码 按键 键码 F1 112 F7 118 F2 113 F8 119 F3 114 F9 120 F4 115 F10 121 F5 116 F11 122 F6 117 F12 123 完整可参考:https://blog.csdn.net/JayceDeng/article/details/78474652 除了F12,其次还对meta,alt,ctrl,shift做了相关检测,具体可参考web API:https://developer.mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/keyCode 那为啥会重定向呢?我们在中搜索window.innerWidth,定位到如下图:  也就是说当e||n 满足 条件的时候,就会走this.onDevToolOpen()这个方法,那我们搜索看一看,定位到如下图:  我们可以在 A.ondevtoolopen(this.type, _) 打上断点,然后进行释放,重新开始  _ 是一个函数,我们点进去,如下图:  经过分析,核心就在window.history.back() 和下面的setTimeout里面 查Web API  就知道原因所在了,这个js中还有其他点的检测,就不过多累赘。 
-  解决方案 将这个js保存到本地,然后替换掉所有检测点(太多可能不太现实),可以考虑置空或者留个打印就行了