首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

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

  •  
  •   viator42 · 2016-09-27 13:10:26 +08:00 via Android · 15968 次点击
    这是一个创建于 1172 天前的主题,其中的信息可能已经有所发展或是发生改变。
    感觉是被修改二次打包了
    第 1 条附言  ·  2016-09-27 13:58:00 +08:00
    最大的问题还是商品的价格由客户端计算,原价减优惠券减积分得出最终的价格.服务端想校验也不知道商品应该是多少钱所以就变成这样了.还好数据量不大有人工校验订单
    求 App 名的就歇歇吧,看热闹的不嫌事大
    191 回复  |  直到 2017-06-07 20:33:59 +08:00
    1  2  
        101
    konakona   2016-09-27 15:50:45 +08:00
    lz 不会是后端吧。...
    后端不用验证?天啊...
        102
    qqmishi   2016-09-27 15:51:03 +08:00 via Android
    永远不要相信客户端数据,服务端必须验证。

    你根本想象不到撸羊毛群里有多少人整天等着用 Fiddler 改数据。
        103
    VRYANG   2016-09-27 15:54:12 +08:00
    哈哈... 看来大神多... 没事,坑趟多了就好了。我现在都想把客户端只做显示用,所有能不要的逻辑都撤掉..
        104
    viator42   2016-09-27 15:58:24 +08:00
    @konakona 我不是后端,但似乎干了后端的活
        105
    ihuotui   2016-09-27 15:59:54 +08:00
    @VRYANG 本来就是,业务都是后端处理,前端只是显示。
        106
    MountainRain   2016-09-27 16:00:03 +08:00   ♥ 1
    就这种水平还要做 APP 啊。。。。。。
        107
    konakona   2016-09-27 16:02:08 +08:00
    @viator42 你是前端?
        108
    corona   2016-09-27 16:03:15 +08:00
    后端不做校验,可以有多种方式修改价格
        109
    VRYANG   2016-09-27 16:04:08 +08:00
    @ihuotui 技术水平参差不齐啊,产品也不懂...剩下的只有坑...
        110
    explon   2016-09-27 16:05:06 +08:00
    神逻辑,怎么不把用户验证也打包到 APP 里面去
        111
    viator42   2016-09-27 16:07:48 +08:00
    @konakona 我是做 App 的
        112
    luoyjx   2016-09-27 16:07:59 +08:00
    那你肯定是客户端传的什么价格你就用什么价格了,前端的价格只是用来显示的,顶多后端允许订单号、商品 id 、商品数量这类数据,服务端再自己计算一次价格
        113
    falcon05   2016-09-27 16:16:37 +08:00 via iPhone
    以前我就职的一家公司也是这样,买了一套 o2o 系统二次开发,也是 TM 一分钱购买,害我修改了大半天,吓死人
        114
    xiao6ye   2016-09-27 16:18:55 +08:00
    @viator42 这后端懒到家了
        115
    v23ex   2016-09-27 16:20:53 +08:00
    LOW
        116
    ijustdo   2016-09-27 16:24:02 +08:00
    找台笔记本 设置 wifi 代理 然后手机链接这个 wifi 然后 笔记本对流量抓包

    撒分析不出来 偷懒的后台 然后 后台前台数据不加密 还有直接用 http/https 协议 api 的 ...

    你们懂的....

    连微信都被抓包然后出来一堆微信机器人 你们后台咋这么自信呢 ....
        117
    issues   2016-09-27 16:26:37 +08:00
    干脆叫一分钱夺宝
        118
    kevincai100   2016-09-27 16:38:36 +08:00
    楼主,请谷哥 FD 大法
        119
    PureDark   2016-09-27 16:41:58 +08:00
    后台不验证!价格由客户端传进来!赶紧报告公司把这个后端开了、
    写接口时,要抱着这个接口是公开透明的,所有人都知道的想法来写,要写到就算所有人都知道接口,也没有办法钻漏洞

    题外话
    @ccloli 学弟最近怎么点进哪都能看到你
        120
    ArthurTsang   2016-09-27 16:43:47 +08:00
    明显不应该客户端去计算,同样想起了上次客户端生成订单号的帖子
        121
    acvrock   2016-09-27 16:46:59 +08:00
    哈哈,以前有人接入支付宝就是在手机端这么搞的,后来还在烦恼怎么生成唯一的订单号
        122
    wclebb   2016-09-27 16:59:26 +08:00 via iPhone
    前一阵子被别人要你刚加入什么情报群,好奇进去了,一般都会禁言+群发各种一分钱,网上可以搜一分钱改什么的软件。貌似已经存在很久了,所以这个群主要是分享福利和收钱发一分钱订单之类的(偶尔有免费),经常看见一分钱或一块钱买几百手机或商品,偶尔发发优惠券。

    有一次觉得像真的,联系,要求付 240 ,我就付了,然后发来 12 日领取苹果手机,我就知道被骗了,质疑后被踢开。

    从此学乖了,当交了智商税,任何提供的 QQ 号手机号一律社工库。当然我也举报了,腾讯理所当然判定我没有证据(最近十条,有证据在最上面……),过一阵子后腾讯又发来通知我这号确定诈骗。
        123
    qleroooo   2016-09-27 17:00:11 +08:00
    android 如果代码混淆过的话,想看懂的话还是比较麻烦的吧!可能被抓包了吧
        124
    wclebb   2016-09-27 17:02:20 +08:00 via iPhone
    @kevincai100 就是这个,估计已经成规模了,任何有一分钱的漏洞,都会群发到某个群,然后大家都会想办法去利用,最常见的是话费充值和商品送货,话费充值是他们最爱,因为无法追踪。地址起码还能知道在哪里。
        125
    x86   2016-09-27 17:03:37 +08:00
    价格您说的算...2333
        126
    yilin101   2016-09-27 17:10:30 +08:00
    楼主是微擎 或者微赞吗?
        127
    realpg   2016-09-27 17:12:15 +08:00
    233333

    都达不到普通工程师的水准就开始做涉及金钱的交易系统
        128
    dassh   2016-09-27 17:14:26 +08:00
    试了下,还真可以。。建议赶紧停服务器,取消无效订单
        129
    zacard   2016-09-27 17:16:59 +08:00
    后端不校验。这 app 都敢上线。。。
        130
    austinchou0126   2016-09-27 17:17:07 +08:00
    "看热闹的不嫌事大"
    请问这种态度是来请教大家的么 hhhh
        131
    reus   2016-09-27 17:31:31 +08:00
    @w99wen 毫无意义。签名本身就是客户端提交的,签名也能伪造,毫无意义。
        132
    allce231   2016-09-27 17:33:00 +08:00
    商品的价格由客户端计算?

    你们真牛逼!!!!
        133
    panlilu   2016-09-27 17:42:00 +08:00
    我就是来歇歇的 2333
        134
    JoyNeop   2016-09-27 17:45:41 +08:00
    说下 app 名字吧,大家一起帮楼主 debug (手动斜眼
        135
    goofansu   2016-09-27 17:45:49 +08:00
    价格居然客户端算。。怎么想的
        136
    ccloli   2016-09-27 17:50:06 +08:00 via Android
    @domty @shiny 额,我没说清楚,那个应该是一个像众筹一样的平台,填负数就直接入账了 233

    @PureDark 我也想说 how old are you ,前几天在 coolapk 上就见到你了,还想截屏问是不是你来着😂
        137
    robinshi2010   2016-09-27 17:51:04 +08:00
    我是吃瓜群众。
        138
    konakona   2016-09-27 17:52:47 +08:00
    @viator42 那貌似跟你没有多大关系。
    APP 里的计算就算再多、再复杂,也只是避免了与 API 的通信以提供更好的用户体验而已。
    进入数据库的东西必须是后端经过验证、二次计算后的,不能直接是用户的。
    你们的后端也是奇葩。
        139
    killerv   2016-09-27 17:57:24 +08:00
    刚才测试了一下,还可以正常下单,话说怎么退单啊……
        140
    Light3   2016-09-27 17:57:25 +08:00
    这个东西 肯定是后端给价格 别前端给价格 这样空子 抓包就能钻..
        141
    bugmenein   2016-09-27 18:11:13 +08:00
    前端验证没有任何问题,都是后端不做二次验证的锅;另外这种后端属于没救的类型,直接开了;否则以后就是你们公司没救了。
        142
    lcsoft   2016-09-27 18:11:22 +08:00
    按理来说 商品价格之类的信息、优惠信息都应该存在后端数据库里吧, APP 下单只是把商品 ID 、优惠 ID 之类的发给后端,后端再从数据库取出数据,然后生成订单。
        143
    awolfly9   2016-09-27 18:23:49 +08:00
    @all 求分享一段可以一分钱下单的代码,让我们也享受享受福利
        144
    iyangyuan   2016-09-27 18:34:53 +08:00 via iPhone
    不知道说什么好了,就当做是学费吧
        145
    YvesX   2016-09-27 18:41:39 +08:00
    “服务端想校验也不知道商品应该是多少钱”

    ……迷之设计。
        146
    qinxi   2016-09-27 18:46:30 +08:00
    你家后端现在情绪稳定吗?
        147
    ylcx123   2016-09-27 18:49:37 +08:00
        148
    ylcx123   2016-09-27 18:51:09 +08:00
    @ylcx123 https://i.bohan.co/EBMDD2M7.jpg
    发图真麻烦啦。我试了下,啥校验都没有!
        149
    LokiSharp   2016-09-27 19:07:06 +08:00
    啊咧咧, Loki 可以帮你调试客户端的
        150
    cocalrush   2016-09-27 19:15:42 +08:00 via Android
    不需要重新打包 拦截请求就可以了……
        151
    gkiwi   2016-09-27 19:16:12 +08:00
    为什么后端不知道怎么校验。。
        152
    DingSoung   2016-09-27 20:01:13 +08:00
    不要相信前端的数据!
    不要相信移动端的数据!
    不要相信任何端传过来的数据!
        153
    DingSoung   2016-09-27 20:02:46 +08:00
    单价,钱,支付状态,这些都要后端自己去算和验证,不能用传过来的数据!
        154
    DingSoung   2016-09-27 20:05:51 +08:00
    @akring 压根不需要什么 root 越狱,用代理抓个包,把接口弄出来,分分钟把公司刷破产
        155
    eddiechen   2016-09-27 23:01:52 +08:00
    后端不做校验,这后端也是够牛。。。
        156
    Lullaby   2016-09-27 23:21:17 +08:00
    商品的价格由客户端计算 这就是最大的问题
        157
    SlipStupig   2016-09-27 23:46:45 +08:00
    请把 app 的名字告诉我,我来帮助你更好的修改 /duge
        158
    irainsoft   2016-09-28 00:35:20 +08:00
    整个设计就尼玛有问题....上面无数人都讲了

    现在直接数据传输强制 HTTPS 然后加后端验证吧:doge:
        159
    peneazy   2016-09-28 06:56:59 +08:00
    Fiddler 记一下
        160
    w99wen   2016-09-28 08:58:34 +08:00
    @reus
    恩。
    彻底防止客户端的订单请求被篡改基本不可能,也只能是生成的订单最大限度防止篡改,然后服务端验证订单信息无误,返回支付的 url ,再用支付链接请求服务端进行关键的支付过程。这样就把最后的付款链接的创建逻辑隐藏在服务器端。
    客户端能做的也只能是最大限度的防止订单信息被篡改。哎,密钥保存真是痛点,哪怕是 iOS 也是不是那么靠谱的。
        161
    HarveyDent   2016-09-28 09:00:06 +08:00
    谁叫你们在技术上省成本,继续啊。
        162
    peinhu   2016-09-28 09:07:48 +08:00
    商品的价格由客户端计算 666
        163
    653513754   2016-09-28 09:16:52 +08:00
    上次操盘手就是可以 1 分钱冲几百万,然后可以提现 及时到账 23333333
        164
    lianxiaoyi   2016-09-28 09:31:27 +08:00
    很明显是服务端的锅 。。。。客户端所有的数据都是服务端给的。。。难道用户积分不是服务端给的吗???难道用户优惠卷信息不是服务端给的么?????无法验证。。。。这是今天看到的最好笑的笑话。。。。。
        165
    hlh3727138   2016-09-28 09:43:53 +08:00
    我靠 刚刚我去看了下我第一次工作写的代码 也是一个模拟商城的 价格也是从前端传过去的 后端没校验 他们还上线了 心里好慌怎么办。。。(主要这个功能前后端都是我一个人写的)
        166
    Ahri   2016-09-28 09:48:37 +08:00
    666
        167
    zichen0422   2016-09-28 10:01:18 +08:00
    哈哈哈, 我公司也出现过这样的问题.
        168
    zichen0422   2016-09-28 10:01:38 +08:00
    后端的锅, 后端不做校验, 作死
        169
    jasonding   2016-09-28 10:06:42 +08:00
    表示看了楼主的基本介绍,一分钱下单再简单不过了好么。。。客户端计算后提交,而且服务端不校验。。。。心真大
        170
    sobigfish   2016-09-28 10:43:22 +08:00
    lz 应该问问后端 有什么价格是前端能算 后端不能算的。。。
    那你应该仔细检查下许多应该后端做而不是前端做的东西
    !!!!
    订单号、 优惠券的使用、价格、支付传参数到支付 API 的加密、 支付结果检查、 订单状态、 退款、
    个人资料修改(有没有平行权限漏洞,比如使用了前端传的 userId )
        171
    fjzjk   2016-09-28 10:53:51 +08:00
    怎么可能让客户端去处理价格的问题,你们的产品在干什么
        172
    t40462860   2016-09-28 11:38:21 +08:00
    听过 fiddler 吗?
        173
    Yvette   2016-09-28 11:52:15 +08:00
    这都可以上线?
        174
    xiaonengshou   2016-09-28 11:55:17 +08:00
    想了想,在开发范畴这种事还是客户端的工程师责任比较大。
        175
    josephok   2016-09-28 12:05:04 +08:00
    验证什么???
    听到这个就感觉悬了....
        176
    tumbzzc   2016-09-28 13:40:33 +08:00
    因为他们是没有公德心的 13 岁小神童
        177
    hl   2016-09-28 15:48:40 +08:00
    服务端要有逻辑做 double check ,不是提交的时候做 double check ,而是在订单系统里做。服务端对用户订单做展示的时候二次过滤,凡是价格上与数据库里的比对不对的,根本不给客户做展示,就算有漏洞刷了一分钱订单,这个和数据库里的商品登记对应不上,也是不让用户能看到这订单的,这样给研发的很大的空间做修复。当然这里面价格比对要考虑到折扣,优惠活动这些条件。
        178
    yongSir   2016-09-28 16:14:46 +08:00
    支付上
    绝对不能相信客户端的验证
        179
    zohan   2016-09-28 18:53:18 +08:00
    @xiaonengshou 带节奏我还是服你
        180
    xiaonengshou   2016-09-28 21:26:18 +08:00
    @zohan 遇到这样问题,客户端要去撕逼。
        181
    zohan   2016-09-29 09:23:17 +08:00
    @xiaonengshou 这就尴尬了
        182
    icris   2016-09-29 09:28:53 +08:00
    不用改逻辑,正常下单正常支付不给发货,等两天封号,怎么说也赚了一分钱,运气好还能赚它一块钱呢
        183
    jianghu521   2016-09-29 10:20:09 +08:00
    https 啊, 这种优惠, 价格 应该后台验证
        184
    jianghu521   2016-09-29 10:20:39 +08:00
    二次打包, 你们没有代码加固或者混淆吗
        185
    iMono   2016-09-29 11:15:37 +08:00
    这。。。。。。。。。。。。。。。。后台。。。 233333333333
        186
    julyclyde   2016-09-29 11:44:07 +08:00
    不是前后的问题
    是压根就不应该允许客户提交单价这个数据
        187
    5177748   2016-09-29 16:03:06 +08:00
    感觉是赚吧大神出手了。。。。。。
        188
    ylcx123   2016-11-22 10:30:09 +08:00
    @viator42 我说,我测试了一笔后,都一个多月了,你们是即不退款也不发货?
    而且你们的 Android app 还没地方申请退款,求还钱
        189
    viator42   2016-11-22 10:46:01 +08:00
    @ylcx123 呃,我就是个码代码的,找我退款也没卯用.这个是不出外地的,发货是别想了.退款的话,你直接打电话吧
        190
    ylcx123   2016-11-22 12:37:00 +08:00
    @viator42 早知道就用一分钱测了。 app 居然连申请退款功能都没有
        191
    voocel   2017-06-07 20:33:59 +08:00 via Android
    @hlh3727138 这下慌了吧
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2345 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 02:34 · PVG 10:34 · LAX 18:34 · JFK 21:34
    ♥ Do have faith in what you're doing.