Open liyongbj opened 1 year ago
个人理解, 前端应该仅作为向用户展示信息和交互的工具, 不应该 (只) 在前端做关于安全方面的校验或在前端存储应该保密的 API Keys 等. 重要的逻辑和应该保密的信息等应该在后端处理. 再者, 即使将 Vue Force Dev
拓展使用的方法封禁, 前端 (打包后的) 源码依然可以被用户下载. 如果不怀好意的人想知道前端里的重要信息一样可以通过阅读源码来获得, 只是稍微麻烦一点而已. (我就这样对一些 Webview 套壳 Android apps 做过, 还抓包改了前端源代码获得了一些权限. 这些软件就是安全校验只在用户端进行的反面教材). 综上, 我认为封禁 Vue Force Dev
拓展使用的方法没有太大的意义.
@DuckBurnIncense 感谢。我明白你的意思,对于存心想破解的人来说确实意义不大,就像代码混淆对于想深入代码逻辑的人一样没有作用。但是对于常规场景终归还是有一定作用。我太熟悉react,但是我发现react即便是在开发者工具下也只能看到各种缩写简写,对于理解还是需要一些难度的,目的是对大多数(而不是全部的)不怀好意的人有阻止作用就够了。还是希望vue或者vue-tools能给一些缓解方案。
我这边的项目一直都是 生产环境的 devtools工具都可以打开 用的vite
我这边尝试解决了一下,有两个方案
我的打包命令
"build:prod": "vite build --mode prod",
更换为下面这个就好了
"build:prod": "vite build --mode production",
这个方案奇怪就在与 我的打包mode配置文件名字还影响环境变量?? 是个很奇怪的问题
env.prod 文件中指定,然后打包就不会有该问题
NODE_ENV=production
解决就是把 NODE_ENV 变为 production 就好了 不过要注意 import.meta.env.VITE_USER_NODE_ENV, 项目中是否有使用 这俩是同一个值,可以去看vite文档
devtools 单独可以解决 Vue Force Dev 两个同时用,无法解决
vue2基本没戏,主动暴露了各个对象的vue内容,升vue3吧,把唯一的__vue_app__藏闭包里呗
Vue devtools version
6.5.0
Link to minimal reproduction
https://github.com/hzmming/vue-force-dev/blob/master/detector.js
Steps to reproduce & screenshots
What is expected?
生产环境下,设置了Vue.config.devtools=false,无论如何devtools都不应该可以被打开。因为这势必导致可能存在的安全风险更容易被暴漏和前端页面逻辑被猜测甚至破解。
What is actually happening?
即便是设置了Vue.config.devtools=false,只要安装并开启了Vue Force Dev 1.1.0扩展程序,devtools都是可以被轻松打开的。
System Info
Any additional comments?