【问题标题】:Can websites detect use of simple Tampermonkey scripts? [duplicate]网站可以检测到简单 Tampermonkey 脚本的使用吗? [复制]
【发布时间】:2019-11-26 04:23:01
【问题描述】:

出于好奇并且无法找到明确的答案,我想知道。网站是否能够检测到 Tampermonkey 用户脚本的使用?如果是这样,它是任何脚本还是只有它具有特定功能? 网站可以检测到类似以下的简单脚本吗?

(function() {
  var randomizer = Math.floor(Math.random() * 241) + 20; //Gets a random number between 0 and 240, then adds 20
  //console.log(randomizer);
  setTimeout(function(){ location.reload(); }, randomizer*1000); 
})();

【问题讨论】:

    标签: javascript tampermonkey userscripts


    【解决方案1】:

    tl;dr - 否

    浏览器和 Tampermonkey 插件都不会宣传用户脚本的存在。也就是说,没有直接的方法可以只写if(tampermonkeyActive) 并检测它。

    但是,网页可能会实施防篡改技术。这些可能不是针对 Tampermonkey,而是针对任何类型的可疑行为。这可能包括:

    • 每个用户每单位时间的可疑活动量
    • 网页未聚焦时的活动
    • 意外的全局变量或函数调用
    • 检查isTrusted 的事件。

    在所有这些中,我只体验过第一个示例,即在服务器端记录活动并手动查看它。因此,如果您正在尝试自动化某件事,而网站所有者并不热衷于它,您应该考虑让它看起来像人类。

    安全

    Tampermonkey 脚本已经在封装范围内运行,因此自调用函数是多余的。

    检测用户脚本可能是恶意行为者想要做的事情。如果您使用@grant 来获取tampermonkey 的任何特殊功能,并且还使用@grant unsafeWindow,则泄漏任何功能都可能允许检测到该功能的攻击者破解您的浏览器。不过这需要付出很多努力——他们需要检测用户脚本,然后手动破解它,因为每个用户脚本都是不同的。

    【讨论】:

    • 非常感谢!我不确定他们是否热衷于使用这样的脚本自动刷新它,但由于他们的网站没有正确更新自己,我认为这是必要的。想要确保没有“证据”证明它不是人按 F5 键或随机单击刷新图标,所以你的回答回答了我的问题。谢谢!
    猜你喜欢
    • 2022-12-15
    • 1970-01-01
    • 2022-01-18
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多