V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hustlike
V2EX  ›  Java

https+token 能保证绝对安全吗?

  •  
  •   hustlike · 2015-12-09 21:42:08 +08:00 · 9101 次点击
    这是一个创建于 3301 天前的主题,其中的信息可能已经有所发展或是发生改变。

    继上次问了个小白问题 app 后台怎么做( 0 回复)之后我又有了一个入门级的问题。我打算用 spring mvc+spring security oauth2 做 app 后台,现在的做法(也是各种搜到)是 https+token 。首次请求使用 grant_type=client_credentials 创建用户,之后用户登陆提交用户名密码拿到 token 。然后用户每次请求带上 token 。

    那么我还有个问题,如果对安全性要求较高的话这种方式能算比较安全的吗?比如涉及交易。

    因为我看到网上有一些对称 /非对称加密的做法,我是不是还需要加上呢?

    lz 小白没做过后台,如果有大神知道麻烦回答。感激不尽。

    18 条回复    2015-12-15 14:23:10 +08:00
    adoyle
        1
    adoyle  
       2015-12-09 22:08:44 +08:00
    每次登陆以后得到的 token 应该是不一样的。 token 的生成算法可以自己定制下。
    https+token 是相对安全的,当然没有绝对的安全。
    500miles
        2
    500miles  
       2015-12-09 22:10:56 +08:00
    哪儿有绝对安全这回事儿

    强制性 https+token 再加上一些行为特征检测... 注意 token 更换策略

    够用了
    jsthon
        3
    jsthon  
       2015-12-09 22:11:40 +08:00
    如果这样就能绝对安全了那支付宝也不会用各种安全组件了。
    likuku
        4
    likuku  
       2015-12-09 22:39:24 +08:00
    拔掉网线,粉碎掉硬盘,就绝对安全了。
    kookxiang
        5
    kookxiang  
       2015-12-09 22:48:05 +08:00
    token 必须随机生成,并且有过期时间
    kaneg
        6
    kaneg  
       2015-12-09 23:27:11 +08:00
    看到绝对安全我就不敢回答了
    broono
        7
    broono  
       2015-12-09 23:31:24 +08:00
    绝对安全啊 666 铜板给你 :(逃
    warDoggie
        8
    warDoggie  
       2015-12-09 23:40:40 +08:00 via iPhone
    不要相信不是自己敲的代码 那句话怎么说来着,求告知。 要绝对安全私以外要从硅提纯做起
    honeycomb
        9
    honeycomb  
       2015-12-09 23:41:11 +08:00 via Android
    银行 /支付程度的肯定还不够,这些业务还会下很多钉子(特征检测),还有多因素验证之类的
    est
        10
    est  
       2015-12-09 23:44:15 +08:00
    我说一个“绝对”安全的吧。

    1. app 客户端代码用加壳+混淆编译成原生的 .so
    2. 静态连接 openssl 实现 https
    3. SSL Pin 锁定指纹
    4. 静态编译一个基于 socket 的 http 库。绕开 android 所有的 http API 。

    欢迎来破解。
    est
        11
    est  
       2015-12-09 23:45:21 +08:00
    忘记说最核心的了。 app 只是一个容器,所有业务逻辑通过 https 动态下发。
    nvidiaAMD980X
        12
    nvidiaAMD980X  
       2015-12-09 23:58:02 +08:00 via Android
    @jsthon 国外的支付手段怎么不需要在用户的电脑上安装一大堆证书和安全控件?万一,利用这些莫名其妙的数字证书来一个中间人工具…………
    Https+SSL EV(证书在线验证)+特征码检测⇒⇒应该可以使安全系数提高很多。
    wind4
        13
    wind4  
       2015-12-10 09:37:12 +08:00
    1 、 TLS 保证链路安全
    2 、 OAuth 保证权限授权
    =========
    在 OAuth 中, access_token 只是短期有效, refresh_token 则是代替用户名、密码长期有效的。
    shyling
        14
    shyling  
       2015-12-10 09:48:06 +08:00 via Android
    @est 做一个特别的内核。。。如何
    daysv
        15
    daysv  
       2015-12-10 09:58:35 +08:00
    我觉得研究下量子通讯会比较好
    yangyanggnu
        16
    yangyanggnu  
       2015-12-10 10:41:36 +08:00
    不能单纯说“加上 token ”安不安全,解决的问题不一样。比如,你要防 XSS 、 SQL 注入、越权,加不加 token 没任何帮助;而,要防止 CSRF , token 有一定效果,具体而言,可以在用户登录时由服务端下发 token 至客户端的 cookie 中,用户每次 post 请求时,一方面, URL 中必须带 token ,一方面,上发的 cookie 中也必须带 token ,服务端比较两个 token ,若一致则响应,否则忽略,如果,要更完善,还得在 set-cookie 时增加 HttpOnly 属性。
    zhengkai
        17
    zhengkai  
       2015-12-10 22:57:10 +08:00
    先不用想那么多,做点能看得见摸得着的东西,技能树不能跳着点
    liubey
        18
    liubey  
       2015-12-15 14:23:10 +08:00
    长期关注,目前市面上绝大部分 app 应该都是 https+token
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1039 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:15 · PVG 02:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.