vuex 里的数据能被很容易的伪造吗?

2019 年 4 月 24 日
 imherer
这东西毕竟是在前端,应该很容易被伪造和修改吧?是这样的吗?

另外 vuex 里放几百 k 的数据经常更改和读取,性能上会有问题吗?
4886 次点击
所在节点    程序员
24 条回复
no1xsyzy
2019 年 4 月 24 日
是,前端的任何内容用户永远有最高控制权,即使是 “.exe ”,数据也可以被 Cheat Engine 修改。

看优化,看你改了什么,但在 perf 前不要考虑任何性能问题。
shintendo
2019 年 4 月 24 日
不理解这个问题。
你指的“伪造”,是被谁伪造?出于什么动机?
imherer
2019 年 4 月 24 日
@shintendo 比如一个问答系统,总共 10 道题,用户只能做完第一道题才能做下一道题,假如把用户当前做到哪一道题了存在 vuex 的话,用户可以直接修改这个值直接跳到最后一道题。虽然实际中这个值应该在服务端计数。

举的例子不一定准确,但是差不多就是这个意思
momo1999
2019 年 4 月 24 日
永远不信任前端
xianxiaobo
2019 年 4 月 24 日
@imherer 伪造 vuex 数据多麻烦啊,直接调第 10 道题的接口就完事了。
shintendo
2019 年 4 月 24 日
@imherer
直接 postman 发请求,网页都不要了
ChefIsAwesome
2019 年 4 月 24 日
51job 曾经搞什么付费才能看隐藏内容的功能。就是前端拿个 div 遮了一下。
hlwjia
2019 年 4 月 24 日
@imherer 按你的设计思路(后端是不是完全没有校验),直接调用接口改成绩得了
Mutoo
2019 年 4 月 24 日
Vue 的组件可以直接通过 DOM Element 的 __vue__ 访问(即使是 production 也没问题),然后 .__vue__.$store 就暴露无疑了。
imherer
2019 年 4 月 24 日
@xianxiaobo
@shintendo
@hlwjia

这里只是假设了一个不恰当的例子……你们跑偏了……
imherer
2019 年 4 月 24 日
@Mutoo 谢谢,刚还在想怎么看$store 里的数据呢
wxsm
2019 年 4 月 24 日
所有客户端数据都可以被伪造。
npe
2019 年 4 月 24 日
我伪造骗自己? 不把后端验证放到眼里?
shintendo
2019 年 4 月 24 日
@imherer
不是,没有跑偏,表达的意思很清楚:任何页面上的限制,都可以通过不用页面直接调接口来绕过。
所以不想让用户看的东西,就不能从接口上吐出来,一旦接口上吐出来了,就处于用户的完全掌控之下,你甚至不知道前端是不是一个浏览器。
wa143825
2019 年 4 月 24 日
@ChefIsAwesome 巧了,以前斗鱼也是
tcpdump
2019 年 4 月 24 日
前后端分离就是这样,稍微改一下就能看到后台的所有功能。
iiii
2019 年 4 月 24 日
@tcpdump 这个和分离有什么关系?
zhenizhui
2019 年 4 月 24 日
@tcpdump 也就只能看到页面,有啥用
KuroNekoFan
2019 年 4 月 24 日
感觉你问题描述的不清楚,如果害怕接口被无端调用,引入过期机制就好了
Sapp
2019 年 4 月 24 日
@imherer 然而你这个例子很贴切,前端能干的无非就两种,第一种自己骗自己,比如微博改文字玩。第二种就是绕过系统限制,就是你说的发请求,但是这两种都犯不着修改 vuex,图什么呢? 绕过系统限制那直接看 network 然后直接发不就行了吗?改基本 dom 更不需要 vuex。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/558166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX