什么是无限debugger
某一天,我在用控制台检查network信息时
遇到了很怪的一幕,一旦打开控制台就会自动跳转到debug调试页面
firefox浏览器甚至会迅速奔溃
chrome中可以看到这样的代码
解决办法
好家伙,这种情况我还真是第一次见,怕不是写了个脚本无限debug。
既然如此,那我就跳过debug,直接禁止端点debugger
或者也可以直接禁用网站JavaScript,但这波AOE可能会导致网站内容不可用(慎用)
扩展
那么这段代码是怎么做到的呢,经过一番搜寻,发现了实现代码如下
setInterval(function () {
check()
}, 4000)
var check = function () {
function doCheck(a) {
if (('' + a / a)['length'] !== 1 || a % 20 === 0) {
;(function () {}['constructor']('debugger')())
} else {
;(function () {}['constructor']('debugger')())
}
doCheck(++a)
}
try {
doCheck(0)
} catch (err) {}
}
check()
总结
这种手段怎么说呢,会的人防不住,不会的人不用防 ,所以,我们当个小把戏玩就行啦!
什么是无限debugger
某一天,我在用控制台检查network信息时
遇到了很怪的一幕,一旦打开控制台就会自动跳转到debug调试页面
firefox浏览器甚至会迅速奔溃
chrome中可以看到这样的代码
解决办法
好家伙,这种情况我还真是第一次见,怕不是写了个脚本无限debug。
既然如此,那我就跳过debug,直接禁止端点debugger
或者也可以直接禁用网站JavaScript,但这波AOE可能会导致网站内容不可用(慎用)
扩展
那么这段代码是怎么做到的呢,经过一番搜寻,发现了实现代码如下
setInterval(function () {
check()
}, 4000)
var check = function () {
function doCheck(a) {
if (('' + a / a)['length'] !== 1 || a % 20 === 0) {
;(function () {}['constructor']('debugger')())
} else {
;(function () {}['constructor']('debugger')())
}
doCheck(++a)
}
try {
doCheck(0)
} catch (err) {}
}
check()
总结
这种手段怎么说呢,会的人防不住,不会的人不用防 ,所以,我们当个小把戏玩就行啦!