JS 反审查学习笔记

前端网页如何避免被访客审查元素?总结以下方法,未来有新的想法也会记录在此篇文章里。

通过 debugger 反审查

转自:https://blog.csdn.net/weixin_32496175/article/details/114013102

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
((function () {
var callbacks = [],
timeLimit = 50,
open = false;
setInterval(loop, 1);
return {
addListener: function (fn) {
callbacks.push(fn);
},
cancleListenr: function (fn) {
callbacks = callbacks.filter(function (v) {
return v !== fn;
});
}
}
function loop() {
var startTime = new Date();
debugger;
if (new Date() - startTime > timeLimit) {
if (!open) {
callbacks.forEach(function (fn) {
fn.call(null);
});
}
open = true;
window.stop();
alert('大佬别扒了!');
document.body.innerHTML = "";
} else {
open = false;
}
}
})()).addListener(function () {
window.location.reload();
});

弊端:访客点击继续按钮前,依旧可以审查元素,并不能有效阻止。

破解方式:

打开新标签页,打开 F12 控制台 Sources 选项卡,点亮右侧的 Activate breakpoints,再从地址栏进入目标网站即可。

判断用户是否打开了控制台

转自:https://blog.csdn.net/qq_21567385/article/details/108473235

利用了控制台会读取 image element 的 id 的特性。

1
2
3
4
5
6
7
8
9
10
11
(function() {
var element = new Image();
Object.defineProperty(element, "id", {
get: function () {
// 做一些打开后的操作
console.log('你打开了控制台,哈哈')
location.href = "https://www.imaegoo.com"
},
});
console.log(element);
})()

破解方式:

使用油猴脚本清空控制台。

1
2
3
4
5
6
7
8
9
10
11
12
13
// ==UserScript==
// @name console cleaner
// @match https://*/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==

(function() {
'use strict';
setInterval(function() {
console.clear();
}, 500);
})();

禁用 JavaScript 权限

这是非常激进的做法,基本能够应对各种反审查策略,但在 AJAX 盛行的现在,多少网页离了 JS 还可以正常展示呢?

米游社

PC 版米游社( http://bbs.mihoyo.com/ )的反审查做得也非常到位,有时间会研究如何破解。(学习目的!)

作者

iMaeGoo

发布于

2021-05-10

更新于

2021-05-10

许可协议

CC BY 4.0

评论