首页
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
Search
1
乐橙CMS影视管理系统最全版本
109,277 阅读
2
VIP视频解析破解电影解析模拟破解影视解析
77,795 阅读
3
乐橙CMS影视管理系统4.0.18版本
16,934 阅读
4
新浪图片链接修复教程集合
15,125 阅读
5
反调试代码调试死机代码禁止F12代码
12,093 阅读
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
登录
Search
标签搜索
PHP
AI
LINUX
微信
MYSQL
OpenClaw
ESP32S3
小智AI
P2P
JS
破解
乐橙cms
支付
uniapp
人工智能
技术趋势
智能玩具
公众号
typecho
xshell
子沐~
累计撰写
121
篇文章
累计收到
372
条评论
首页
栏目
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
页面
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
搜索到
1
篇与
的结果
2023-01-03
防止域名劫持代码
[hide] <!-- 防劫持代码 --> <script jpgke-fuck> /** * @note 防劫持代码 * @key MutationObserver 提供了监视对DOM树所做更改的能力 */ (function() { var srcFilterTags = ['script', 'iframe']; // 域名白名单 可以加多个 var whiteList = ['static','gw.alipayobjects.com','res.wx.qq.com','hm.baidu.com','cdnjs.cloudflare.com']; var whiteListReg = []; // 正则匹配 whiteList.forEach(function(wl) { var wlReg = new RegExp('/.+?\/\/' + wl + '|\/\/' + wl + '|.+?\.' + wl + '|^' + wl); whiteListReg.push(wlReg); }); // 白名单助手 var inWhileList = function(addedNode) { // jpgk-fuck 是script的白名单标签 if (addedNode.src === '' && addedNode.getAttribute('jpgke-fuck') !== null) { return true; } var isInWhiteList = false; whiteListReg.forEach(function(wlReg) { if (wlReg.test(addedNode.src)) { isInWhiteList = true; return false; } }); return isInWhiteList; }; // dom观察器 var mutationHandler = function(records) { records.forEach(function(record) { Array.prototype.slice.call(record.addedNodes).forEach(function(addedNode) { srcFilterTags.forEach(function(tagName) { // 标签匹配 白名单匹配 if (addedNode.tagName === tagName.toUpperCase() && !inWhileList(addedNode)) { addedNode.remove(); }; }); }); }) }; // 核心 - MutationObserver 提供了监视对DOM树所做更改的能力 // 优点 - 动态监听是否有非法的 iframe 和 script 代码 // 缺点 - 无法查找头部直接插入的代码 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, observeMutationSupport = !!MutationObserver; var html = document.getElementsByTagName('html')[0]; if (observeMutationSupport) { new MutationObserver(mutationHandler).observe(html, { 'childList': true, 'subtree': true }); } // 唯独直接加载的不能remove掉,异步加载的都能remove掉!! // *** 记录头部的script,通知工信部 *** var eleList = document.querySelectorAll('script'); var len = eleList.length; for (var i = 0; i < len; i++) { // 遍历操作 if (!inWhileList(eleList[i])) { // do sth 这里的删除虽然已经晚了,因为头部同步JS已被执行,删除操作意义不大,但可以统计被劫持的代码是什么,记录好LOG 通知工信部 // sendLog eleList[i].remove(); } } })(); </script> <!-- 防劫持 --> [/hide]
2023年01月03日
2,649 阅读
0 评论
0 点赞