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

移动 APP 需要严格防控抓包吗?

  •  
  •   cevincheung ·
    cevin · Apr 24, 2014 · 6416 views
    This topic created in 4410 days ago, the information mentioned may be changed or developed.
    目前是这么搞的。

    服务端:
    1.接口只接受POST请求
    2.接口必须HTTPS访问

    移动端:
    SSL证书内置,SSL-Pinning验证证书。不匹配不发请求。


    APP需要严格防控抓包么?如此方案除了反编译源码外,还有被抓包的可能吗?
    17 replies    1970-01-01 08:00:00 +08:00
    arron
        1
    arron  
       Apr 24, 2014
    获取客户端那个SSL证书内容不难,SSL-Pinning是比对证书吧?然后在代理上验证这个证书就成。(没有测试)
    感觉这种使用公共的方法都容易被破的。
    WildCat
        2
    WildCat  
       Apr 24, 2014 via iPhone
    搭车问下hybrid app的相同问题。
    missdeer
        3
    missdeer  
       Apr 24, 2014
    叹气,要怎样才能有效防止呢
    dong3580
        4
    dong3580  
       Apr 24, 2014
    @cevincheung
    不防止怎么样呢?可以方便粉丝移植到更多平台。
    当然前提若你的是收费app,那就严格控制吧。
    sanddudu
        5
    sanddudu  
       Apr 24, 2014
    ipa跟zip差不多,如果把证书放进去跟直接放出来没差别
    另外真的要找接口的话反编译都不是难事,一般挖的出来证书密码
    但是如果你的证书密码是123456,那你做什么措施都没用了
    yautou
        6
    yautou  
       Apr 24, 2014
    想到一个不知道实际可行不。
    记录发起请求的时间戳,经过某一不可逆的算法加密,两者都传给服务器;
    服务器对时间戳离谱的请求直接舍弃,对有效的时间戳,用同样算法加密一次,与收到的密文比较,判断是否接受请求。
    tang3w
        7
    tang3w  
       Apr 24, 2014
    即使进行了证书验证,越狱后的系统是不安全的,也可以被抓包。客户端和服务端协商一个非对称加密机制,对敏感数据加一下密就行了。
    elden
        8
    elden  
       Apr 24, 2014
    Certificate Pinning主要是确保公共网络的SSL通讯安全,并不能防止有心人抓包。 比如在越狱后的iOS,只需简单交换[NSURLConnectionDelegate connection:canAuthenticateAgainstProtectionSpace:] 或 [NSURLSessionDelegate URLSession:didReceiveChallenge:completionHandler:]的实现即可破解。
    JoyNeop
        9
    JoyNeop  
       Apr 24, 2014
    @sanddudu 233333333333333333333333333333333333333333333333333333333333333
    akira
        10
    akira  
       Apr 24, 2014
    把心思花在做好产品上面吧。

    一切防范手段都是防君子不防小人的。
    mornlight
        11
    mornlight  
       Apr 24, 2014
    个人觉得应该把防御的重点放到服务端上,不相信任何客户端发来的数据。所有放到客户本地的东西理论上都是不安全的
    orzfly
        12
    orzfly  
       Apr 24, 2014
    @sanddudu 2333333333333333333333333333333333333333333333333333333333333333
    xiasix
        13
    xiasix  
       Apr 24, 2014
    3des加密 ios和服务端约定好密钥就可以了嘛 传输都是一堆字符串 你又不知道密钥 你解啊 你解啊 你解啊
    janxin
        14
    janxin  
       Apr 25, 2014 via iPad
    看你的应用类型,有些软件有特殊要求,比如金融软件有合规要求
    AeroKwok
        15
    AeroKwok  
       Apr 25, 2014
    你把接口加密就行了,当然要自己设计这中API。比如跳字符串什么的
    wwqgtxx
        16
    wwqgtxx  
       Apr 25, 2014 via Android
    没用的,只要有root权限,都能直接替换系统类库,防不胜防
    TangMonk
        17
    TangMonk  
       Apr 25, 2014
    防不了的,移动 APP 和网页一样的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2967 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 150ms · UTC 14:48 · PVG 22:48 · LAX 07:48 · JFK 10:48
    ♥ Do have faith in what you're doing.