
console-ban拦截浏览器控制台、防止静态资源被反查的1KB轻量工具【免费下载链接】console-banDetect F12 open console, protect web static resources, support redirect, rewrite, callback strategies.项目地址: https://gitcode.com/gh_mirrors/co/console-ban页面被 F12 一开就裸奔很痛你把页面辛苦上线对方按个 F12接口响应、令牌、业务逻辑全躺在控制台里爬虫和竞品都是这么开工的。console-ban 就是专门拦截DevTools 控制台被打开这个动作的库一旦探测到立刻执行你预设的应对动作。一行 init 调用的拦截器它的定位很单一监听用户是否打开了浏览器控制台探测到之后做重定向、页面重写或执行你的回调面向想抬高页面静态资源反查成本的开发者。console-ban 是怎么知道 DevTools 被打开了核心思路一句话console.log 输出对象时浏览器只在渲染控制台面板那一刻才会调用它的 toString 或属性 getter普通代码执行不会调。于是把陷阱对象埋进日志回调挂在 toString 上const re /./ re.toString fire // 控制台打开时执行的回调 console.log(re) // 面板渲染时才会触发 toString这是 Firefox 的实现。Chrome 更复杂要区分控制台渲染行为在不同版本92 以下、93–101、102的差异分别用 %c 样式参数、函数 toString 和 Error.message getter 覆盖Safari 则监听 Image 的 id 属性 getter。三份检测实现放在 src/browser/ 目录对照着读很清楚。回调触发后src/core.ts 按优先级执行三级策略callback 优先其次 redirect最后才是 write 重写。什么情况下你会打开 console-ban电商详情页配redirect: /404爬虫或手快的人按出控制台页面直接跳到静态 404拿不到渲染好的数据。内部管理后台用write把 body 重写成警告页想开控制台看数据的人先看到一片白。风控敏感页callback里先上报埋点再跳转拿到比固定策略更灵活的切入点。要清楚它是劝退而非封死——抬高反查成本拦不住决心禁用 JavaScript 的对手。把它当安全边界会失望。npm 一行接入 console-bannpm install console-ban入口引入import { init } from console-ban; init({ redirect: /404 })没有构建工具就引一段 CDN 脚本调ConsoleBan.init()即可。所有参数都可缺省空对象调用也能拿到默认防护。顺手做了三件别人要自己写的事体积压缩后不到 1KB对页面总量基本是噪音。默认防护init 后默认禁用console.clear每 3 秒跑一次无限debuggerdebugTime可调并关闭 bfcache防止靠返回键绕过检测。版本覆盖Chrome/Firefox/Safari 三大内核各自独立的探测代码Chrome 分支还细分了多个版本的行为差异。TypeScript 编写零运行时依赖MIT 协议。一句话价值它把探测 DevTools这个需要翻零散文章拼起来的活打包成了一次调用。想验证检测手法翻翻 src/core.ts 和 src/browser/ 那三个文件一屏读完觉得有用顺手给个 star。【免费下载链接】console-banDetect F12 open console, protect web static resources, support redirect, rewrite, callback strategies.项目地址: https://gitcode.com/gh_mirrors/co/console-ban创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考