vue.js - 【vue安全问题!!】vue页面的各种权限,用户可以直接在浏览器控制台修改对应的数据就可以显示并操作了?!

查看:137
本文介绍了vue.js - 【vue安全问题!!】vue页面的各种权限,用户可以直接在浏览器控制台修改对应的数据就可以显示并操作了?!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

大家好,我用vue做了一套系统,做完我发现是不是存在安全隐患?查了好多资料查不到,只有上来提问了,请知道的大侠指点下。

现在系统的权限控制是在登录页取到用户信息后,保存到vuex的store中,然后根据用户信息中的权限绘制页面。

现在比如系统有两个按钮A、B,一个用户登录后,正常情况只有一个按钮A,他用chrome的vue插件获取到现在vuex中有个属性是Control,现在数值是0,如图所示。


然后他打开浏览器控制台,直接修改这个vuex中的数值,即修改了自己的访问权限,这时按钮B就会显示出来了,如下图。

按钮B显示出来了,那么他就可以操作了不是吗?
同理,很多你想控制的权限都可以被他修改下数据就可以访问,可以用了。这是不是有很严重的安全问题。
我不可能还要写后台的权限管理来卡控这个安全问题吧?那也太费力了,和业务不相干的安全问题都要单独操劳那么多吗?
真心求指教!谢谢!



——————————————分割线————————————————
找到答案了,永远不要相信用户输入。
1.前端:在打包的时候,记得把Vue.config.devtools设置成false,这样就不能被调试,也取不到this.$vm了。(Vue.config.devtools = process.env.NODE_ENV !== 'production')
2.后端:添加接口调用权限卡控,要卡控到每个用户所属的角色能够调用哪些接口才行。

解决方案

后端自然也要权限控制。

就算你实现了不给用户改 vuex 的值,用户依旧可以伪造请求执行该操作。记住一句话: 永远不要相信用户的输入。

这篇关于vue.js - 【vue安全问题!!】vue页面的各种权限,用户可以直接在浏览器控制台修改对应的数据就可以显示并操作了?!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆