移动端反调试怎么在Vue里实现?
我最近在做公司一个H5活动页,担心被人用Chrome DevTools调试扒代码,想加个简单的反调试。网上搜到一些方法,比如检测devtools或者断点,但在Vue项目里不知道怎么优雅地集成进去。
我试过在mounted里加检测逻辑,但好像很容易被绕过,而且一开调试器页面就卡死,体验也不好。有没有更靠谱的做法?下面是我目前的尝试:
<script setup>
import { onMounted } from 'vue'
onMounted(() => {
setInterval(() => {
if (window.outerHeight - window.innerHeight > 200) {
debugger
}
}, 1000)
})
</script>
给你几个实际一点的方案:
方案一:定时器偏差检测(推荐)
调试器打开时setInterval会变慢,通过performance.now()检测时间差:
方案二:console检测
有些调试工具会重写console.log:
方案三:禁用右键和F12
说句实在话,移动端H5做反调试意义不大。真正保护代码的手段是:
1. 上线前用terser或webpack-obfuscator混淆代码,这是最有效的
2. 接口加签名、请求加密,防止抓包
3. 核心逻辑放native端
你那个debugger直接卡死的做法太愣了,容易把正常用户坑进去。反调试只能增加一点调试成本,别指望能防住真想做手脚的人。