1
echo314 2023-02-18 23:13:59 +08:00
canvas 显示可否?
|
2
i0error 2023-02-18 23:14:36 +08:00
您好,这是必应。😊
根据网络搜索结果¹²³,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. |
3
i0error 2023-02-18 23:15:08 +08:00
以上内容来自 Bing ,未验证
|
4
liyang5945 2023-02-18 23:16:14 +08:00 via Android
在线考试系统就不可靠,我猜你们是要禁止文字复制啥的吧,浏览器打开控制台想干什么都可以,我见过有考试客户端是用 electron 套个壳,能防住大部分人了
|
5
i0error 2023-02-18 23:16:16 +08:00
看起来是在一本正经胡说八道,忽略。
|
6
renmu 2023-02-18 23:16:20 +08:00 via Android
然后反手就把你检测注入的代码干掉了,当然能不能检测到是一回事。
|
7
XiLingHost 2023-02-18 23:25:36 +08:00 2
|
8
Micropaper 2023-02-18 23:29:02 +08:00
一个简单的办法是挟持 console.log ,然后便利内容中是否包含 chrome-extension://xxxx 。不过这个可能需要你研究一下油猴的 xx 有什么特征,当然你也可以只要检测到 chrome-extension:// 就提示用户必须禁掉所有插件再使用你的考试系统,不管他有没有安装油猴。
|
9
laqow 2023-02-19 00:36:33 +08:00
electron 打个包多好,为什么要干涉别人的浏览器
|
11
IvanLi127 2023-02-19 02:39:38 +08:00 via Android
有没有一种可能,油猴脚本先下手把你检测代码吃掉
|
12
learningman 2023-02-19 03:35:36 +08:00 via Android
@IvanLi127 那就一起放 wasm 里,一部分检测一部分逻辑,这样没法屏蔽
|
13
FFFFourwood 2023-02-19 08:36:43 +08:00 via iPhone
我就是做考试系统的、网页版不能能防作弊,
得 electron 套壳客户端 断网清后台 只留部分白名单 摄像头 ai 作弊检测 等等 考试途中把电脑关机重启 开机之后依旧是考试界面 |
14
muzuiget 2023-02-19 10:59:55 +08:00
不行,代码从服务器传到浏览器,怎么运行是浏览器的事了,有足够耐性,始终能逆向出来。
除非类似视频 DRM ,数据直送硬件层面解密处理,否则没戏。 |
15
zhlxsh 2023-02-19 11:16:07 +08:00 via iPhone
|
16
bagel 2023-02-19 11:48:06 +08:00
|
17
HuskyYellow 2023-02-19 13:57:15 +08:00
@FFFFourwood 这种方式有一个办法能跳过去,就是局域网投屏。我之前帮朋友作弊过,也是你这种方式的考试系统。
|
18
MMMMMMMMMMMMMMMM 2023-02-19 18:23:01 +08:00
摄像头,AI 识别物体
临考简单的发布一个规则,如:画面里必须用纸写上他的名字、日期 or something ,背景必须放盆花之类的... 作弊成本是很高的,有这技术真没必要赚这个钱,监考只需要找个现成的 AI 物体识别解决方案就行了 |
19
iPc666 2023-02-19 19:25:46 +08:00
单纯用 js 没法检测的到。油猴脚本是在沙箱里的。
|