公司的商城 App 被人一分钱下单,不知道他是怎么办到的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
viator42
V2EX    程序员

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

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

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

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

    这锅前端不背…

    后端校验不是常识吗…

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

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

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

    心真大!!!
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3134 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 11:51 PVG 19:51 LAX 04:51 JFK 07:51
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86