news 2026/4/3 6:02:35

瑞数6补环境案例(3)——吐环境脚本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
瑞数6补环境案例(3)——吐环境脚本

【Bilibili】:餍足SATISFY

作者声明:文章仅供学习交流与参考!严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除!

商业合作:yanzukf

一、背景

之前写瑞数 6 补环境那篇的时候,评论区和私信里有不少小伙伴问一个类似的问题:

“能不能单独出一期讲讲吐环境脚本的?”

当时手上正好在忙别的项目,就一直先记在 TODO 里。最近正好翻资料的时候,又看到了之前在图灵 Python那边收藏的一段吐环境脚本,已经在瑞数场景里验证过,虽然不是那种“把整个浏览器扒光”的级别,但针对瑞数 6 这种典型前端防护,日常补环境已经够用,于是就有了这篇续作。

这篇就不再展开逆向细节了,主要干三件事:

  1. 讲清楚所谓“吐环境”到底在干什么;
  2. 把我在用的那版吐环境脚本完整贴出来,并说明一下来源;
  3. 简单说说怎么在调试/补环境的时候用它来定位重点对象。

照旧再强调一遍:只讨论学习和调试层面的东西,不鼓励、也不建议拿去对平台做任何违规操作。


二、“吐环境”到底在吐什么?

很多同学第一次听“吐环境”三个字,会以为是啥高深玩法,本质上其实就一句话:

把目标脚本访问的环境对象、属性统统“打印出来给你看”。

瑞数这类前端防护的核心手段之一,就是到处摸你的环境:
window / document / navigator / screen / history / canvas / webgl ……

如果我们肉眼一个个console.log去插,既费劲又容易漏。吐环境脚本做的事情,就是:

  1. Proxy把一堆关键对象(比如windowdocumentnavigator等)统统包一层;

  2. 每当脚本对这些对象做get / set操作时,自动把:

    • 是哪个对象
    • 访问了哪个属性
    • 属性类型是什么
      打印出来;
  3. 最后在控制台一刷,整套“访问轨迹”就躺在那儿了。

你后续不管是要迁移到 Node、Puppeteer、还是想做补环境模拟,优先把这些被频繁访问的属性补齐,效率会高很多


三、吐环境脚本源码(图灵 Python 版本)

下面这段就是我现在在用的吐环境脚本,最初来源是图灵 Python 那边的脚本(应该是课程/社群里流传的版本),我只是按自己习惯改了下对象列表和输出格式,方便自己看日志。

版权归原作者所有,这里只是整理出来方便大家学习调试,如有问题联系我删文即可。

functionget_enviroment(proxy_array){for(vari=0;i<proxy_array.length;i++){handler='{\n'+' get: function(target, property, receiver) {\n'+' console.log("方法:", "get ", "对象:", '+'"'+proxy_array[i]+'" ,'+'" 属性:", property, '+'" 属性类型:", '+'typeof property, '+// '" 属性值:", ' + 'target[property], ' +'" 属性值类型:", typeof target[property]);\n'+' return target[property];\n'+' },\n'+' set: function(target, property, value, receiver) {\n'+' console.log("方法:", "set ", "对象:", '+'"'+proxy_array[i]+'" ,'+'" 属性:", property, '+'" 属性类型:", '+'typeof property, '+// '" 属性值:", ' + 'target[property], ' +'" 属性值类型:", typeof target[property]);\n'+' return Reflect.set(...arguments);\n'+' }\n'+'}'eval('try{\n'+proxy_array[i]+';\n'+proxy_array[i]+'=new Proxy('+proxy_array[i]+', '+handler+')}catch (e) {\n'+proxy_array[i]+'={};\n'+proxy_array[i]+'=new Proxy('+proxy_array[i]+', '+handler+')}')}}proxy_array=['window','document','navigator','location','history','screen','localStorage','canvas','UA_InputId','body','CanvasRenderingContext2D','b','a','input','button','script','span','documentElement','a','experimental','webgl','WEBGL_debug_renderer_info','submit','UNMASKED_VENDOR_WEBGL','button1','button2','div','head','meta','html']get_enviroment(proxy_array);

这个脚本有什么特点?

简单归纳一下:

  1. 并不是“全量吐环境”

    • 你能看到我关注的更多是浏览器核心对象、DOM 节点、canvas/webgl 相关对象这些。
    • 想做到“全局每个对象都挂 Proxy”也不是不行,但一是容易卡,二是没必要,噪音太多反而看不清重点。
  2. 对瑞数 6 这种场景来说已经够用了

    • 实战里调瑞数站的时候,它重点摸的那几块(navigatorscreenhistorycanvaswebgl等)基本都在这个列表里。
    • 日常补环境、看访问轨迹完全够用,不至于把自己搞得一堆无关日志里找针。
  3. 输出信息偏“人类可读”

    • 每次get/set都会带上“方法 / 对象 / 属性 / 属性类型 / 属性值类型”这种标签,
    • 日志一眼扫过去就知道:谁在访问谁,大概想干嘛。

你也可以根据自己目标站点,改动proxy_array的内容,比如加上你怀疑被频繁访问的自定义对象名。


四、总结

最后简单收个尾,方便你自己做笔记:

  1. 这篇算是《瑞数 6 补环境案例》的一个小补充,专门聚焦在“吐环境脚本”这一块。

  2. 给出的脚本来源于图灵 Python 的版本,我只做了轻微整理和对象列表调整,版权归原作者所有。

  3. 脚本本身并不是那种“把所有东西都挂 Proxy”的暴力方案,而是针对浏览器核心对象、DOM、canvas/webgl 做了一圈监听,

    吐得不算特别“全”,但在瑞数 6 这类典型前端防护场景下,日常调试和补环境已经足够用了。

  4. 再强调一遍:仅用于学习、调试和研究前端环境检测原理,不要用于任何商业、灰黑产或违法场景,否则有啥后果和我都没关系。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 11:27:32

.NET进阶——深入理解线程(1)同步异步与单线程多线程的区分

今天我们来详细介绍一下多线程&#xff0c;多线程是.NET中非常重要的知识点&#xff0c;需要完全掌握。 一、什么是多线程&#xff1f; 在了解线程之前&#xff0c;我们需要知道什么是进程&#xff0c;所谓进程&#xff0c;就是指操作系统中运行的程序&#xff0c;比如我们自己…

作者头像 李华
网站建设 2026/4/1 10:05:39

食品工业生产线的安全防线:X光异物检测机的作用与挑选要点

在食品工业的生产线上&#xff0c;食品安全一直都是绝不能突破的红线&#xff0c;在此之中&#xff0c;异物混入是致使产品被召回以及品牌声誉遭受损害的主要风险之一&#xff0c;X光异物检测机作为一种效率高的非破坏性检测技术&#xff0c;已然变成保障最终产品安全的关键防线…

作者头像 李华
网站建设 2026/3/30 4:32:39

LobeChat情人节品牌互动文案

LobeChat&#xff1a;当开源遇见浪漫&#xff0c;技术如何编织情感体验 在生成式 AI 如潮水般涌入日常生活的今天&#xff0c;我们早已不再惊讶于一个模型能写出诗、编出代码&#xff0c;甚至模仿哲学家对话。真正让人驻足的&#xff0c;是那些让技术“有温度”的瞬间——比如&…

作者头像 李华
网站建设 2026/3/30 17:26:45

Motrix浏览器扩展终极指南:三步实现专业下载管理革命

Motrix浏览器扩展终极指南&#xff1a;三步实现专业下载管理革命 【免费下载链接】motrix-webextension A browser extension for the Motrix Download Manager 项目地址: https://gitcode.com/gh_mirrors/mo/motrix-webextension 你是否曾经因为浏览器下载速度慢如蜗牛…

作者头像 李华
网站建设 2026/3/27 14:20:27

JS利用分块技术实现100万文件上传的解决方案?

专业版技术方案&#xff1a;大文件传输系统开发实录 一、需求分析与技术选型 作为内蒙古某软件公司前端负责人&#xff0c;针对20G大文件传输需求&#xff0c;我进行了以下技术评估&#xff1a; 核心痛点&#xff1a; 现有方案&#xff08;WebUploader&#xff09;已停更&…

作者头像 李华
网站建设 2026/3/31 20:27:24

LobeChat SEO元描述自动生成

LobeChat&#xff1a;构建私有化 AI 对话门户的现代技术实践 在大语言模型&#xff08;LLM&#xff09;能力不断突破的今天&#xff0c;我们早已不再质疑“AI 能不能回答问题”&#xff0c;而是更关心&#xff1a;“用户能不能顺畅地用上它&#xff1f;” 尽管 OpenAI、Anthr…

作者头像 李华