JS 有办法检测当前页面是否有油猴脚本注入吗?接了个在线考试系统外包,客户要求是这样。

查看 84|回复 5
作者:edis0n0   
echo314   
您好,这是必应。😊
根据网络搜索结果¹²³,JS 有办法检测当前页面是否有油猴脚本注入。一种方法是使用 window.GM_info 对象,它是油猴脚本的元数据,可以获取脚本的名称、版本、描述等信息。如果该对象存在,则说明当前页面有油猴脚本注入。另一种方法是使用 document.scripts 集合,它包含了页面上所有的 script 标签,可以遍历它们并检查它们的 src 属性是否包含 tampermonkey.net 或 greasespot.net 等油猴脚本的域名。如果找到了,则说明当前页面有油猴脚本注入。
源: 与必应的对话,2023/2/18(1) Tampermonkey 油猴 js hook 教程_pylemon 的博客-CSDN .... https://blog.csdn.net/qq_27648991/article/details/107749532 访问时间 2023/2/18.
(2) [油猴脚本开发指南]脚本往页面上添加新元素_李恒道的博客 .... https://blog.csdn.net/lihengdao666/article/details/113064736 访问时间 2023/2/18.
(3) [javascript] 油猴脚本开发整理_业火之理的博客-CSDN 博客. https://blog.csdn.net/yehuozhili/article/details/113727385 访问时间 2023/2/18.
当然可以。😊
根据网络搜索结果¹²³,以下是两种检测油猴脚本的示例代码:
- 使用 window.GM_info 对象:
```javascript
// ==UserScript==
// @name 检测油猴脚本
// @namespace test
// @version 1.0
// @description 检测当前页面是否有油猴脚本注入
// @match *://*/*
// ==/UserScript==
(function() {
'use strict';
// 如果 window.GM_info 对象存在,则说明有油猴脚本注入
if (window.GM_info) {
console.log("当前页面有油猴脚本注入");
// 打印出所有的油猴脚本的名称和版本
for (let script of window.GM_info.script) {
console.log(script.name + " " + script.version);
}
} else {
console.log("当前页面没有油猴脚本注入");
}
})();
```
- 使用 document.scripts 集合:
```javascript
// ==UserScript==
// @name 检测油猴脚本
// @namespace test
// @version 1.0
// @description 检测当前页面是否有油猴脚本注入
// @match *://*/*
// ==/UserScript==
(function() {
'use strict';
// 定义一个数组,包含了常见的油猴脚本的域名
let domains = ["tampermonkey.net", "greasespot.net", "userscripts.org", "greasyfork.org"];

// 遍历所有的 script 标签,检查它们的 src 属性是否包含上述域名之一
for (let script of document.scripts) {
let src = script.src;
if (src) {
for (let domain of domains) {
if (src.includes(domain)) {
// 如果找到了,则说明有油猴脚本注入,并打印出该 script 标签的内容和 src 属性值
console.log("当前页面有油猴脚本注入");
console.log(script);
console.log(src);
break;
}
}
}
}
})();
```
源: 与必应的对话,2023/2/18(1) Tampermonkey 油猴 js hook 教程_pylemon 的博客-CSDN .... https://blog.csdn.net/qq_27648991/article/details/107749532 访问时间 2023/2/18.
(2) 油猴 Safari 浏览器插件:Tampermonkey 脚本插件 - 掘金. https://juejin.cn/post/7200196102968901690 访问时间 2023/2/18.
(3) 如何开发一个油猴脚本- 从零开始编写一个油猴脚本_mukes 的 .... https://blog.csdn.net/mukes/article/details/109727662 访问时间 2023/2/18.
i0error   
以上内容来自 Bing ,未验证
i0error   
在线考试系统就不可靠,我猜你们是要禁止文字复制啥的吧,浏览器打开控制台想干什么都可以,我见过有考试客户端是用 electron 套个壳,能防住大部分人了
liyang5945   
看起来是在一本正经胡说八道,忽略。
i0error   
然后反手就把你检测注入的代码干掉了,当然能不能检测到是一回事。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部