前端网页如何避免被访客审查元素?总结以下方法,未来有新的想法也会记录在此篇文章里。
通过 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
|
(function() { 'use strict'; setInterval(function() { console.clear(); }, 500); })();
|
禁用 JavaScript 权限
这是非常激进的做法,基本能够应对各种反审查策略,但在 AJAX 盛行的现在,多少网页离了 JS 还可以正常展示呢?
米游社
PC 版米游社( http://bbs.mihoyo.com/ )的反审查做得也非常到位,有时间会研究如何破解。(学习目的!)