• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imherer
V2EX  ›  程序员

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

  •  
  •   imherer · Apr 24, 2019 · 5280 views
    This topic created in 2752 days ago, the information mentioned may be changed or developed.
    这东西毕竟是在前端,应该很容易被伪造和修改吧?是这样的吗?

    另外 vuex 里放几百 k 的数据经常更改和读取,性能上会有问题吗?
    24 replies  •  2019-04-24 17:44:33 +08:00
    no1xsyzy
    no1xsyzy
    Apr 24, 2019❤️2
    1
    是,前端的任何内容用户永远有最高控制权,即使是 “.exe ”,数据也可以被 Cheat Engine 修改。

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

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

    这里只是假设了一个不恰当的例子……你们跑偏了……
    imherer
    imherer
    OP
    Apr 24, 2019
    11
    @Mutoo 谢谢,刚还在想怎么看$store 里的数据呢
    wxsm
    wxsm
    Apr 24, 2019
    12
    所有客户端数据都可以被伪造。
    npe
    npe
    Apr 24, 2019 via Android
    13
    我伪造骗自己? 不把后端验证放到眼里?
    shintendo
    shintendo
    Apr 24, 2019
    14
    @imherer
    不是,没有跑偏,表达的意思很清楚:任何页面上的限制,都可以通过不用页面直接调接口来绕过。
    所以不想让用户看的东西,就不能从接口上吐出来,一旦接口上吐出来了,就处于用户的完全掌控之下,你甚至不知道前端是不是一个浏览器。
    wa143825
    wa143825
    Apr 24, 2019
    15
    @ChefIsAwesome 巧了,以前斗鱼也是
    tcpdump
    tcpdump
    Apr 24, 2019
    16
    前后端分离就是这样,稍微改一下就能看到后台的所有功能。
    iiii
    iiii
    Apr 24, 2019 via Android
    17
    @tcpdump 这个和分离有什么关系?
    zhenizhui
    zhenizhui
    Apr 24, 2019
    18
    @tcpdump 也就只能看到页面,有啥用
    KuroNekoFan
    KuroNekoFan
    Apr 24, 2019
    19
    感觉你问题描述的不清楚,如果害怕接口被无端调用,引入过期机制就好了
    Sapp
    Sapp
    Apr 24, 2019
    20
    @imherer 然而你这个例子很贴切,前端能干的无非就两种,第一种自己骗自己,比如微博改文字玩。第二种就是绕过系统限制,就是你说的发请求,但是这两种都犯不着修改 vuex,图什么呢? 绕过系统限制那直接看 network 然后直接发不就行了吗?改基本 dom 更不需要 vuex。
    laimikan
    laimikan
    Apr 24, 2019
    21
    所有暴露在前端的数据都可以直接修改
    lrh3321
    lrh3321
    Apr 24, 2019 via Android
    22
    只要后端不去做限制,大不了伪造个请求。
    limuyan44
    limuyan44
    Apr 24, 2019 via Android
    23
    这是 vue 的问题吗。。。。
    Phariel
    Phariel
    Apr 24, 2019 via iPhone❤️1
    24
    前后端双重验证 看你怎么做了 这是老生常谈的问题
    PS:永远也不要信任用户提交的数据 做好完整验证
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1475 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 129ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
    ♥ Do have faith in what you're doing.