Guardian
能拦截eval等危险操作,追踪其来源(网页自身或用户脚本),并弹出对话框让用户决定是否放行,最终实现了对恶意脚本攻击的有效防御。"。
Total Installs
135
Today's New
+0
User Rating
- / 5.0 (0)
Current Version
1.0
项目由来
最初是刷视频发现有些恶意用户脚本可能会利用 eval() 或类似的危险函数来执行恶意代码,从而窃取用户的敏感信息,例如 Cookie、表单输入内容和剪贴板数据。为了应对这个风险,Guardian应运而生
核心功能 (Core Functions)
- 风险行为监控 : 实时监控页面中所有脚本对高风险函数的调用,包括
eval、Function构造函数,以及尤其危险的特权 API(如GM_xmlhttpRequest、GM_setValue等)。 - 来源追溯与识别 : 能精准分析出风险行为的发起者,在弹窗中明确告知用户是“网站本身”还是“某款油猴脚本”在尝试执行敏感操作。
- 交互式确认弹窗: 当在非白名单网站上检测到风险行为时,会立刻通过一个同步的
window.confirm()对话框 冻结整个页面,强制用户在“允许”或“阻止”之间做出选择。 - 智能白名单系统 :
- 手动管理: 用户可以随时将信任的网站添加到白名单,在这些网站上脚本将不再主动拦截,减少打扰。
- 自动学习: 当用户在某个新网站上首次“允许”一个风险操作后,脚本会自动将该网站加入白名单,实现了“一次信任,永久方便”。
核心优势 (Core Advantages)
- 杜绝时序竞速: 这是最核心的优势。通过同步的
confirm弹窗冻结页面的机制,从根本上解决了安全脚本与恶意脚本“赛跑”的问题。恶意代码在用户授权前 绝对没有 执行机会。 - 决策权完全在用户: 脚本不替用户做决定。它只负责“发现问题”和“提供信息”(谁在做什么),然后将最终的、拥有完整上下文的决策权完全交还给用户。
- 精准溯源,提升判断力: 明确告知风险来源,极大地帮助了用户决策。用户可以轻松判断:“哦,是这个我刚安装的脚本要联网,看起来很可疑,阻止它”,或者“是 Bilibili 网站自身的行为,应该没问题,允许它”。
- 高兼容性: 相比之前尝试修改 CSP 或破坏
Function原型链等“一刀切”的激进做法,最终的“按需拦截”方案对正常网站的破坏性极小,几乎不会影响 Vue.js 等现代化框架的运行,也就是不会影响网站的正常运行。 - 平衡了安全性与便利性 : 在陌生网站上它是一个严格的“门卫”,但在用户信任的网站上,它会变成一个安静的“观察者”。自动学习的白名单机制,完美地平衡了极致安全和日常使用的便利性,避免了过多的弹窗干扰。