根治 playzip.com 恶意广告脚本注入与点击劫持(Clickjacking)的纵深防御用户脚本,基于浏览器深度取证开发,三层防线 + 弹窗/跳转兜底,v5 已根除"点击一次后无法继续点击、随后弹出广告页"问题。
适用网站:https://playzip.com/*、https://*.playzip.com/*(含全部子域)
标签:#去广告 #广告过滤 #playzip #点击劫持 #弹窗拦截
PlayZip Cleaner 是一款针对 playzip.com 的取证驱动型广告拦截脚本。站点会在 window.onload 后动态注入两个恶意脚本实施点击劫持与广告弹窗,常规黑名单方案无法根治。本脚本通过"注入层 + 特征层 + 事件层"三道防线纵深防御,从源头切断广告链路,同时保持零权限(@grant none)、对站点业务功能零干扰。
| 项目 | 值 |
|---|---|
| 当前版本 | 5.0.0 |
| 运行时机 | @run-at document-start(页面解析前介入) |
| 权限要求 | @grant none(零权限最小化) |
| 子帧策略 | @noframes(仅主页面运行) |
| 兼容环境 | Tampermonkey(Edge / Chrome / Firefox)/ 脚本猫(ScriptCat) |
Element.prototype.appendChild / insertBefore,广告脚本根本不进入 DOM,不会加载执行;fixed/absolute + z-index ≥ 1000 + 覆盖大面积,不依赖 id/class/透明背景,抗变体)+ 全屏广告 iframe 清理 + MutationObserver 持续监控;abcd.js 的 handleAdClick 点击监听注册(双世界双保险),即使前两道防线失效也无法劫持点击;location.assign / replace / href 赋值的广告联盟跳转;click())同样拦截;脚本开发前对 playzip.com 进行了浏览器深度取证,确认:
aclib.js(约 639KB)与 /static/js/abcd.js 均不在静态 HTML 中,由 loadAds() 在 window.onload 后通过 document.createElement('script') 动态注入;aclib.js 创建 #dontfoid 全屏透明遮罩(znid=11311110)实施点击劫持:覆盖全页接管点击,用户点击被跳转至广告联盟;abcd.js 对 navigator.language === 'zh-cn'(中文)用户监听 body 点击,90 秒冷却期后 window.open 弹广告,广告商按权重从 t.jopeki.com、brimvale.xyz、aiyeyu.org、23.225.187.244 选择。实验验证:阻止这两个脚本后遮罩、劫持、广告请求全部消失,页面功能不受影响 —— 拦截源头即可根治。
重写 appendChild / insertBefore 在 DOM 插入层拦截动态创建的广告 <script>。相比"事后用 MutationObserver 删除已插入脚本"的方案,注入层拦截有根本性优势:
loadAds() 硬编码固定路径:/aclib.js、/static/js/abcd.js;| 防线 | 机制 | 失效兜底 |
|---|---|---|
| 第一道 | 注入层路径级拦截(appendChild/insertBefore 重写) |
广告脚本不加载,后续防线自动空闲 |
| 第二道 | 通用特征清理遮罩 / 全屏广告 iframe(结构特征识别,抗变体) | 漏网的弹层按 fixed/absolute + z-index≥1000 + 大面积 一律清除 |
| 第三道 | 事件层 handleAdClick 注册拦截(v5 新增) |
即使广告脚本侥幸加载,其点击监听注册也被拒绝(页面世界 + 用户脚本世界双保险) |
第三道防线合并了 mk-playZip-BanJumpingAds 的 handleAdClick 拦截思路并优化:页面世界通过 <script> 补丁注入(CSP 拦截时降级告警,不中断主流程),用户脚本世界同步重写 addEventListener,双世界双保险;并周期性尝试移除已注册的 handleAdClick 监听。
另配 window.open 站外弹窗白名单、location 广告跳转拦截、捕获阶段点击拦截作为全链路兜底。
@grant none:不申请任何扩展特权;@run-at document-start:在广告脚本注入前即建立防线;@noframes:仅在主页面运行,不污染子帧;页面右下角显示绿色 「PlayZip Cleaner v5 已启用」 徽标(半透明、不遮挡点击),安装后强刷页面即可一眼确认脚本生效,无需打开控制台排查。
保存 playzip-cleaner.user.js 到本地,在 Tampermonkey / 脚本猫管理面板 → 实用工具 / 导入 → 选择文件 → 确认安装。
Ctrl+Shift+R / Cmd+Shift+R);| 版本 | 方案 | 结果 |
|---|---|---|
| v2.0.0 | 广告域名黑名单穷举 + 遮罩特征拦截 | ❌ 仍弹窗:广告脚本可随时换域名/文件名,黑名单追不上,源头未切断 |
| v3.0.0 | 域名白名单注入拦截 | ⚠️ 弹窗大幅减少,但白名单含 playzip.com,同域广告脚本(/aclib.js、/abcd.js)被误放行,源头拦截失效 |
| v4.0.0 | 广告脚本路径级精确拦截 + 放宽遮罩识别 + 全屏广告 iframe 清理 | ✅ 根治弹窗:无论域名如何更换,固定广告路径一律拦截 |
| v5.0.0(当前) | 保留 v4 全部防线 + 新增事件层 handleAdClick 注册拦截(纵深防御) |
✅ 根治 + 纵深兜底:即使广告脚本侥幸加载也无法注册点击监听 |
本脚本仅用于个人学习交流与屏蔽恶意广告弹窗、点击劫持等损害用户体验的行为,不涉及站点数据篡改或账号相关操作。
PlayZip Cleaner v5.0.0 · 取证驱动 · 纵深防御 · 零权限 · 仅限个人学习使用
喜欢请打赏