之前,我曾提过一个问题, 网站如何检测到是否开启开发者工具?
问题很火,是5月份问题top1, 前面管理员给我删除掉了…
在此, 把这问题及解决办法记录下来.
监听键盘事件F12之类的办法, 不记录, 因为刚开始大家都是这么玩的。
办法一
chrome72以下
var im = new Image();
Object.defineProperty(im, 'id', {
get: function() {
window.location.href = "http://106.53.103.200:8082/error.html"
blast();
}
});
console.log(im); //谷歌最新版生效
原理就是chrome在关上控制台的时候会读取页面上所有的id元素.
办法二
let num = 0; //谷歌最新版无效
var devtools = new Date();
devtools.toString = function() {
num++;
if (num > 1) {
window.location.href = "http://106.53.103.200:8082/error.html"
blast();
}
}
console.log('', devtools);
只有关上控制台,才会执行console打印办法, 由此管制。
以上两个办法,堪称无解,任何人都打不开控制台, 两个办法都是利用了数据劫持,或者重写一些外围办法而达到的,值得思考。
发表回复