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

问个规范问题

  •  
  •   qwertyzzz · 269 天前 · 1140 次点击
    这是一个创建于 269 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没咋写过接口 我想问下如果单纯给 app 写接口 一个安卓端一个 ios 端 那啥 token 的话我是不是可以就定死一个值,告诉他们。然后有需要验证的接口需要传这个值给我是不是就行了啊。。我直接拿约定的 token 值判断?那万一别人抓包了拿到传的 token 咋办。。不太明白这个

    12 回复  |  直到 2019-04-28 10:15:56 +08:00
    wunonglin
        1
    wunonglin   269 天前
    对啊,被抓包怎么办?不如不要 token 直接开放吧[doge]。。。emmmm

    最简单的验证流程大概这样

    const token = 你可以在服务器瞎生成一串亲妈都不认识的字符串作为 token

    1、客户端提交账号密码用来获取 token
    2、客户端用自己的方式存在本地
    3、访问 api 的时候在头部带上 auth 之类的 key 加上 token
    4、后台接收到请求后验证一下 token,过了就给数据,不过就给 403
    ashlord
        2
    ashlord   269 天前
    固定 token 不就等于没有 token 吗……那为什么还要麻烦去弄验证?
    qwertyzzz
        3
    qwertyzzz   269 天前
    @wunonglin 第一步账号和密码是啥呀 0 0.。第三部在头部带上不会被截取吗 还是约定以某种加密方式,我不知道这个 token 需要生成几次 还是只要一个就行了 客户端固定在头部带上这个以大家约定的一个方式来 到时我还解密数据。
    qwertyzzz
        4
    qwertyzzz   269 天前
    @ashlord 没太搞懂这个流程 没做过呀
    huangzhe8263
        5
    huangzhe8263   269 天前
    之前没了解过,最近也在折腾接口的问题,不知道这个是不是你要的
    [JSON Web Token 入门教程]( http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html)
    wunonglin
        6
    wunonglin   269 天前
    @huangzhe8263

    产品经理:我要随时踢某人下线,且不能影响其他用户!!!
    你:emmmm
    我:[doge]
    wunonglin
        7
    wunonglin   269 天前
    @qwertyzzz md5、shaXXX
    wunonglin
        8
    wunonglin   269 天前
    @qwertyzzz 你不用账户密码你怎么知道是谁对你请求的?上 https
    xylophone21
        9
    xylophone21   269 天前
    你这应该是无用户概念的场景,这种场景下只能尽力而为的做认证,常规的方法从安全到不安全:
    1. 设备出厂时加密预制证书,服务端校验证书(这个应该不适合你)
    2. 设备出厂时加密预制唯一 ID,服务端从数据库查 ID 校验+TLS,换取 token (这个应该也不适合你)
    3. 直接使用设备的唯一 ID,如 UUID 加一个签名校验+TLS+服务端监控异常的 UUID
    4. 在 3 的基础上,不换 token 了,直接使用 UUID+签名校验+TLS+服务端监控异常的 UUID

    另外,顺便问一下大家 3 和 4 的安全性到底差异在哪里?
    虽然 token 能改但 UUID 不能改,但 UUID 换 token 的过程如果被抓,结果是一样的,偶尔使用一次比经常使用安全多少?类似 RefreshToken + AccessToken 的方法,究竟比只有一个 AccessToken (过期等于 RefreshToken )安全在哪里?
    a3613051
        10
    a3613051   269 天前
    没错的 抓包拿到 token 就可以被任意用户登录。我抓过无数小程序 银行类 token 都可以直接使用 。
    xwbz2018
        11
    xwbz2018   269 天前 via Android
    @wunonglin #6 这功能还真有,分布式 session,sessionid 就是 token,对应的账号信息存数据库或者 redis 里,还要反向存一次方便查找,踢人的时候把 token 一删,用户直接掉线。
    wunonglin
        12
    wunonglin   269 天前
    @xwbz2018 对所以 JWT 一直是残疾,只能应付小场景
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2108 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 14:32 · PVG 22:32 · LAX 06:32 · JFK 09:32
    ♥ Do have faith in what you're doing.