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

公司的商城 App 被人一分钱下单,不知道他是怎么办到的

  •  
  •   viator42 · Sep 27, 2016 via Android · 21501 views
    This topic created in 3688 days ago, the information mentioned may be changed or developed.
    感觉是被修改二次打包了
    Supplement 1  ·  Sep 27, 2016
    最大的问题还是商品的价格由客户端计算,原价减优惠券减积分得出最终的价格.服务端想校验也不知道商品应该是多少钱所以就变成这样了.还好数据量不大有人工校验订单
    求 App 名的就歇歇吧,看热闹的不嫌事大
    191 replies  •  2017-06-07 20:33:59 +08:00
    1  2  
    ❮ ❯
    nightv2
    nightv2
    Sep 27, 2016
    1
    服务端没有验证?
    millson
    millson
    Sep 27, 2016
    2
    服务器端不做验证吗?永远不要相信“用户输入”
    yonka
    yonka
    Sep 27, 2016
    3
    无论几次打包都没区别吧。 这明明是服务端的锅...
    viator42
    viator42
    OP
    Sep 27, 2016 via Android
    4
    @nightv2 验证什么
    kera0a
    kera0a
    Sep 27, 2016❤️4
    5
    @viator42 验证什么???
    听到这个就感觉悬了
    strongcoder
    strongcoder
    Sep 27, 2016
    6
    验证什么???
    听到这个就感觉悬了....
    viator42
    viator42
    OP
    Sep 27, 2016 via Android
    7
    @yonka 提交订单的价格被写死了
    ma125125t
    ma125125t
    Sep 27, 2016
    8
    验证什么???
    听到这个就感觉悬了....。。。
    wlzcool
    wlzcool
    Sep 27, 2016
    9
    验证什么???
    听到这个就感觉悬了....
    bao3
    bao3
    Sep 27, 2016 via Android
    10
    安全,一定要经过两次以上的验证。
    tscat
    tscat
    Sep 27, 2016 via iPhone
    11
    服务器要校验一次订单信息吧。是用户改了 post 包目测
    ixiaozhi
    ixiaozhi
    Sep 27, 2016
    12
    付款成功,服务器回调
    dantegg
    dantegg
    Sep 27, 2016
    13
    服务端不验证订单信息?
    kouryu
    kouryu
    Sep 27, 2016 via iPhone
    14
    喷了
    我知道的某个公司,不管搞啥都能被人 1 分钱下单或者 bug 价!
    gino86
    gino86
    Sep 27, 2016
    15
    @viator42 数据写不写死没有关系,服务端验不验证数据输入有效性是关键。
    zhuangzhuang1988
    zhuangzhuang1988
    Sep 27, 2016
    16
    服务器没验证呗, 和阿里巴巴的月饼一样
    Sunshow
    Sunshow
    Sep 27, 2016
    17
    验证什么???
    听到这个就感觉悬了....
    HanSonJ
    HanSonJ
    Sep 27, 2016
    18
    我只想问楼主什么公司
    killerv
    killerv
    Sep 27, 2016
    19
    想起了上次那个在客户端生成订单的帖子……
    likai
    likai
    Sep 27, 2016
    20
    验证什么???
    听到这个就感觉悬了....
    likai
    likai
    Sep 27, 2016
    21
    lz 什么 APP.我也去下个单
    w99wen
    w99wen
    Sep 27, 2016
    22
    订单信息加盐加时间戳算出 md5 然后再加盐再算一次 md5 ,得到的值作为 sign 值防篡改。
    要不被抓包了,看到了你订单的 url ,改下价格就下单,不是完蛋了。
    Felldeadbird
    Felldeadbird
    Sep 27, 2016
    23
    服务端不验证用户购买商品的价格吗?
    APP 发送的是什么价格就是什么价格吗?
    w99wen
    w99wen
    Sep 27, 2016
    24
    对了。楼主什么 app ?让我也研究一下啊。
    neoblackcap
    neoblackcap
    Sep 27, 2016
    25
    服务端不校验商品价格,客户端生产订单,大概就是这几个问题
    how2code
    how2code
    Sep 27, 2016
    26
    下面两条都能避免这个情况
    1. 从收款处(支付宝、微信)回调验证用户付款金额,不仅仅是判断付款是否成功
    2. 直接验证用户提交的订单信息;数据是可以伪造的
    jimyan
    jimyan
    Sep 27, 2016 via Android
    27
    用的微擎?有个一分钱漏洞,可以网上查
    shijingshijing
    shijingshijing
    Sep 27, 2016
    28
    我来引战:这就是让前端来写全套的后果! 23333333
    ersic
    ersic
    Sep 27, 2016
    29
    @viator42 验证订单的金额和订单商品价格是否一致。
    blackfire
    blackfire
    Sep 27, 2016
    30
    我只想问楼主什么公司?

    我本人是做 APP 的,跟后台商量接口的时候,凡是涉及到金额的问题,我对他们最大要求就是,永远不要高估用户的智商,永远不要低估用户的智商,永远不要相信我提交的数据。
    viator42
    viator42
    OP
    Sep 27, 2016
    31
    @Felldeadbird 价格是客户端算好了传过去的,得加上一堆优惠什么的,后端思维清奇,说是这样减少服务器压力
    daolin
    daolin
    Sep 27, 2016 via iPhone
    32
    一分钱漏洞,前段时间那个微擎微信系统有这个 bug
    chaichaichai
    chaichaichai
    Sep 27, 2016
    33
    @viator42 23333 ,贵司的 app 叫什么名字
    jarlyyn
    jarlyyn
    Sep 27, 2016❤️4
    34
    @viator42

    这样的后端可以开了……
    diefishfish
    diefishfish
    Sep 27, 2016 via Android
    35
    现在玩 fd 的人真是越来越多了
    reus
    reus
    Sep 27, 2016
    36
    @w99wen 客户端加盐有什么用?你会加,攻击者不会加?服务器端验证才是正解。
    4641585
    4641585
    Sep 27, 2016
    37
    @shijingshijing

    这锅前端不背…

    后端校验不是常识吗…

    缺乏常识的锅(
    Ouyangan
    Ouyangan
    Sep 27, 2016
    38
    很大可能是被篡改数据了 , 加签名验证吧
    reus
    reus
    Sep 27, 2016❤️1
    39
    @viator42 不是减少服务器端压力,是他不用写验证代码了,减少了他的工作量。报告上司把他开了吧,这样的人只会害了贵司。
    Felldeadbird
    Felldeadbird
    Sep 27, 2016
    40
    晕。。后端也太自信了。估计后端没做过啥项目吧。
    reus
    reus
    Sep 27, 2016
    41
    @Ouyangan 难道攻击者不会自己签名?客户端来的数据没有什么篡改不篡改的,不信任就行了。
    w99wen
    w99wen
    Sep 27, 2016
    42
    @reus 加盐为了不容易被暴力破解出 MD5 的原始信息。
    md5 得到的 sign 值是给服务端验证的。
    服务器验证是肯定要有的。
    shiny
    shiny
    PRO
    Sep 27, 2016
    43
    @viator42 这后端就敢相信客户端传来的一切了? 安全常识匮乏。「不要相信来自用户的任何输入」
    yangtukun1412
    yangtukun1412
    Sep 27, 2016
    44
    @w99wen
    要么你需要把 salt 和请求一起发给服务器, 要么硬编码在客户端. 两种方法都是可以比较方便地篡改的. 客户端签名最多只能当做数据完整性校验.
    mogita
    mogita
    Sep 27, 2016
    45
    前端带价格哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈这事竟然真能发生。
    9hills
    9hills
    Sep 27, 2016
    46
    客户端不管是签名也好,加密也罢,都没有什么卵用。
    imn1
    imn1
    Sep 27, 2016
    47
    既然后端这样说,就让他背锅吧
    kideny
    kideny
    Sep 27, 2016
    48
    有些公司为了省人力成本,让前端来写后台。极度讨厌那些压榨剩余劳动力的公司,技术就应该专业化。
    imn1
    imn1
    Sep 27, 2016
    49
    @imn1
    不能说背锅,是担责
    akira
    akira
    Sep 27, 2016
    50
    不需要二次打包,抓取到你提交的数据直接修改就可以了。这样的后端需要调教调教啊。。
    Penton
    Penton
    Sep 27, 2016
    51
    APP : U 购
    公司:济南靓萌服饰有限公司

    别问我怎么知道的
    akring
    akring
    Sep 27, 2016
    52
    付款后服务器要检查订单金额和实际支付金额(微信,支付宝都有回调)的吧,安卓不说了, iOS 越狱设备改个参数分分钟的事情,毫无压力
    Felldeadbird
    Felldeadbird
    Sep 27, 2016
    53
    @Penton 一大波 1 分钱订单正在路上。。。后端和 APP 估计等着被炒了。祈祷。。
    iamzhuyi
    iamzhuyi
    Sep 27, 2016
    54
    @Penton fd 大法好 哈哈哈哈哈哈
    deepjia
    deepjia
    Sep 27, 2016 via iPhone
    55
    真的应该开了……服务端验证是非编码人员都必须知道的最起码的常识啊
    BMW
    BMW
    Sep 27, 2016
    56
    客户端计算价格。。。。。。。。。。。。。。。。。一万个问号 ❓
    FrankZhu
    FrankZhu
    Sep 27, 2016
    57
    @Penton 确定不是来推广一波 233333
    viator42
    viator42
    OP
    Sep 27, 2016
    58
    @Penton 大概知道你是怎么知道的了
    pubby
    pubby
    Sep 27, 2016 via Android
    59
    @Felldeadbird 来吧,让那后端感受一下服务器压力
    tscat
    tscat
    Sep 27, 2016
    60
    优惠券。。。服务器也有优惠券的数据啊
    hasbug
    hasbug
    Sep 27, 2016
    61
    呃··
    sarices
    sarices
    Sep 27, 2016
    62
    哈哈,谁设计的流程啊?客户端计算价格也是厉害,竟然后端不知道实际价格,难道数据都在前端啊,后端就存数据库?不能查询商品价格?不能查询优惠券?
    aidevs
    aidevs
    Sep 27, 2016
    63
    干得漂亮,请问 app 名字是什么?
    MinonHeart
    MinonHeart
    Sep 27, 2016
    64
    没改成负的价钱已经很给面子了
    ccloli
    ccloli
    Sep 27, 2016 via Android
    65
    楼主还好,这边还见过某平台有人提交负数结果还成功了 23333
    keyfunc
    keyfunc
    Sep 27, 2016
    66
    验证什么???
    听到这个就感觉悬了....
    viator42
    viator42
    OP
    Sep 27, 2016
    67
    @sarices 后端基本就是个裸数据库,业务逻辑全都用函数和存储过程实现
    domty
    domty
    Sep 27, 2016
    68
    @ccloli
    提交负数可能走不通第三方支付接口。支付宝允许支付的最低单位应该就是 1 分钱。
    ljy2010a
    ljy2010a
    Sep 27, 2016
    69
    @viator42 验证什么
    听上去就很爽的样子
    huntzhan
    huntzhan
    Sep 27, 2016
    70
    ......有点厉害
    yanyandenuonuo
    yanyandenuonuo
    Sep 27, 2016
    71
    贵司还招后端么,会验证价格的那种 :)
    reHuo
    reHuo
    Sep 27, 2016
    72
    服务器停了
    alamaya
    alamaya
    Sep 27, 2016
    73
    你这是前端把后端的事儿也做了?
    这设计得就有问题
    imbahom
    imbahom
    Sep 27, 2016❤️1
    74
    不需要验证, 1 分钱下单的人是要被开除的!
    daysv
    daysv
    Sep 27, 2016
    75
    好久没见过这么好笑的笑话了
    rphoho
    rphoho
    Sep 27, 2016
    76
    拦到数据改完再提交吗,比如 burpsuite 之类的。
    fwings260
    fwings260
    Sep 27, 2016
    77
    我又想起了之前做输入框
    公司几个人嚷嚷着让我在前端验证的事情了。。。
    VYSE
    VYSE
    Sep 27, 2016
    78
    楼主,万一信息暴露到某吧,你们的人工审核就不干了
    geew
    geew
    Sep 27, 2016
    79
    @fwings260 正常输入框的验证 前后端都是要做的 前端做是提高用户体验 后端做是为了安全 不一样
    4641585
    4641585
    Sep 27, 2016 via iPad
    80
    你补充的那些东西…后端都不保存信息吗…这后端有毛用…
    shmilyin
    shmilyin
    Sep 27, 2016 via iPhone
    81
    @viator42 客户端的信息是不可信的,价格肯定要服务器计算的,订单提交时更是要严格校验的。
    alouha
    alouha
    Sep 27, 2016
    82
    哈哈,服务器不校验,还不知道校验啥……
    sampeng
    sampeng
    Sep 27, 2016
    83
    CTO 的锅,没有脑子的 CTO 才会同意价格在客户端算
    bigdogbigpig
    bigdogbigpig
    Sep 27, 2016
    84
    我只求一个 APP 的名字哈哈哈
    winglight2016
    winglight2016
    Sep 27, 2016
    85
    function+sp ,哈哈,十几年没见过这种后台实现方式了,好怀念啊~~~~
    cpp255
    cpp255
    Sep 27, 2016
    86
    客户端做订单价格计算,心真大。
    watzds
    watzds
    Sep 27, 2016 via Android
    87
    大 bug
    BuilderQiu
    BuilderQiu
    Sep 27, 2016
    88
    https://www.v2ex.com/t/301211

    感觉和这个是一个系列的
    yghack
    yghack
    Sep 27, 2016
    89
    二次打包就更严重了
    这么奇葩,在客户端算价格
    厉害
    zylll520
    zylll520
    Sep 27, 2016
    90
    想起来上次有个客户端生成订单号的...
    wobuhuicode
    wobuhuicode
    Sep 27, 2016
    91
    赶紧去写个 JS 小脚本来抢个月饼~哦不,应该是抢个单
    likai
    likai
    Sep 27, 2016
    92
    看到补充.更加觉得不可思议,
    前端知道优惠卷,积分.后端居然不知道.
    这优惠卷积分哪来的?自己脑补的么
    tabris17
    tabris17
    Sep 27, 2016
    93
    @likai 我怀疑积分和优惠券都是存在客户端本地的,服务器端根本没有这些数据,哈哈哈
    xrlin
    xrlin
    Sep 27, 2016
    94
    这。。。需求文档估计也有问题,服务端居然不知道价格和优惠信息
    WhyAreYouSoSad
    WhyAreYouSoSad
    Sep 27, 2016
    95
    虽然是后端建议前端这样做的,但感觉这样的事应该是码农都改知道的啊
    fuxkcsdn
    fuxkcsdn
    Sep 27, 2016
    96
    这还需要二次打包??
    偷懒的方法,安装个 fiddler 就搞定了
    linKnowEasy
    linKnowEasy
    Sep 27, 2016
    97
    明显后端需要校验的啊。。
    不然抓个包, 模拟一下 post 。。。你们公司估计要破产
    shiny
    shiny
    PRO
    Sep 27, 2016
    98
    @ccloli 那只能先发货再打钱给买家了 233
    FreeDog
    FreeDog
    Sep 27, 2016
    99
    果然简历不能随便贴 / 帐号不能太特别。。
    soland
    soland
    Sep 27, 2016
    100
    商品的价格由客户端计算?

    心真大!!!
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1285 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 154ms · UTC 21:41 · PVG 05:41 · LAX 13:41 · JFK 16:41
    ♥ Do have faith in what you're doing.