
1 no1xsyzy 2019 年 4 月 24 日 是,前端的任何内容用户永远有最高控制权,即使是 “.exe ”,数据也可以被 Cheat Engine 修改。 看优化,看你改了什么,但在 perf 前不要考虑任何性能问题。 |
2 shintendo 2019 年 4 月 24 日 不理解这个问题。 你指的“伪造”,是被谁伪造?出于什么动机? |
3 imherer OP @shintendo 比如一个问答系统,总共 10 道题,用户只能做完第一道题才能做下一道题,假如把用户当前做到哪一道题了存在 vuex 的话,用户可以直接修改这个值直接跳到最后一道题。虽然实际中这个值应该在服务端计数。 举的例子不一定准确,但是差不多就是这个意思 |
4 momo1999 2019 年 4 月 24 日 永远不信任前端 |
5 xianxiaobo 2019 年 4 月 24 日 @imherer 伪造 vuex 数据多麻烦啊,直接调第 10 道题的接口就完事了。 |
7 ChefIsAwesome 2019 年 4 月 24 日 51job 曾经搞什么付费才能看隐藏内容的功能。就是前端拿个 div 遮了一下。 |
9 Mutoo 2019 年 4 月 24 日 Vue 的组件可以直接通过 DOM Element 的 __vue__ 访问(即使是 production 也没问题),然后 .__vue__.$store 就暴露无疑了。 |
10 imherer OP |
12 wxsm 2019 年 4 月 24 日 所有客户端数据都可以被伪造。 |
13 npe 2019 年 4 月 24 日 via Android 我伪造骗自己? 不把后端验证放到眼里? |
14 shintendo 2019 年 4 月 24 日 @imherer 不是,没有跑偏,表达的意思很清楚:任何页面上的限制,都可以通过不用页面直接调接口来绕过。 所以不想让用户看的东西,就不能从接口上吐出来,一旦接口上吐出来了,就处于用户的完全掌控之下,你甚至不知道前端是不是一个浏览器。 |
15 wa143825 2019 年 4 月 24 日 @ChefIsAwesome 巧了,以前斗鱼也是 |
16 tcpdump 2019 年 4 月 24 日 前后端分离就是这样,稍微改一下就能看到后台的所有功能。 |
19 KuroNekoFan 2019 年 4 月 24 日 感觉你问题描述的不清楚,如果害怕接口被无端调用,引入过期机制就好了 |
20 Sapp 2019 年 4 月 24 日 @imherer 然而你这个例子很贴切,前端能干的无非就两种,第一种自己骗自己,比如微博改文字玩。第二种就是绕过系统限制,就是你说的发请求,但是这两种都犯不着修改 vuex,图什么呢? 绕过系统限制那直接看 network 然后直接发不就行了吗?改基本 dom 更不需要 vuex。 |
21 laimikan 2019 年 4 月 24 日 所有暴露在前端的数据都可以直接修改 |
22 lrh3321 2019 年 4 月 24 日 via Android 只要后端不去做限制,大不了伪造个请求。 |
23 limuyan44 2019 年 4 月 24 日 via Android 这是 vue 的问题吗。。。。 |
24 Phariel 2019 年 4 月 24 日 via iPhone 前后端双重验证 看你怎么做了 这是老生常谈的问题 PS:永远也不要信任用户提交的数据 做好完整验证 |