V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
httpbin - 协议调试工具
httpstatuses - 协议状态码查询
httpie - cURL-like tool for humans
Fiddler
hymie
V2EX  ›  HTTP

http 接口请求和响应数据防止被篡改

  •  
  •   hymie · 2017-04-12 11:04:59 +08:00 · 4330 次点击
    这是一个创建于 2563 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做两个系统的数据对接工作,在设计 http 接口文档的时候,请求数据中加了一个的签名参数,防止请求数据被篡改。

    领导对我的文档提出两点修改意见:

    1.请求参数在增加一个参数,标识这个请求的编号 2.响应数据也新增一个签名参数,防止响应数据被篡改

    我很少看到这样的做法 1http 请求本身就是无状态的,加一个请求编号意义不大。 2 如果是 ajax 请求,还要在前端判断响应数据是否一致,这样做是否有用和有必要。

    领导对数据传输安全比较重视,请各位发表一下看法,怎么做比较合适,我该如何说服他。

    14 条回复    2017-04-12 13:21:47 +08:00
    fenixan2010
        1
    fenixan2010  
       2017-04-12 11:12:28 +08:00
    上 https 吧
    maemual
        2
    maemual  
       2017-04-12 11:27:58 +08:00
    所以为什么不上 HTTPS
    xenme
        3
    xenme  
       2017-04-12 11:30:55 +08:00
    加个签名就够了,序号没啥必要
    shoaly
        4
    shoaly  
       2017-04-12 11:31:45 +08:00
    加一个 编号是有用的, 防止重放攻击, 也就是说 对于服务器, 同一个编号 无法连续访问 2 次
    hymie
        5
    hymie  
    OP
       2017-04-12 11:32:17 +08:00
    @fenixan2010 对忘了说,目前还不支持 HTTPS ,我会去建议一下
    hymie
        6
    hymie  
    OP
       2017-04-12 11:32:45 +08:00
    @maemual 对忘了说,目前还不支持 HTTPS ,我会去建议一下
    hymie
        7
    hymie  
    OP
       2017-04-12 11:33:27 +08:00
    @shoaly 那返回数据呢,有必要签名加密返回吗
    maemual
        8
    maemual  
       2017-04-12 11:35:46 +08:00
    @hymie #6 因为你目前的基于 HTTP 的安全方案搞到最后,就变成 HTTPS 了。。。。。
    shoaly
        9
    shoaly  
       2017-04-12 11:39:00 +08:00
    签名 有没有必要 主要看 你的需求啊, 如果需要表明数据没有被篡改过. 那就两边都加, 没加的都是不可信的
    mhycy
        10
    mhycy  
       2017-04-12 11:39:07 +08:00
    很显然,这是在实现 HTTPS 的代替品,签名加密返回还是有意义的
    zooandzoo
        11
    zooandzoo  
       2017-04-12 11:43:31 +08:00
    你可以参考微信支付的接口是怎么传的并不难,老板问你你就说微信也是这么做的。
    littleylv
        12
    littleylv  
       2017-04-12 11:51:21 +08:00
    很多支付系统接口都是双向校验的
    tinyproxy
        13
    tinyproxy  
       2017-04-12 13:15:52 +08:00 via iPhone
    请求参数加签名不是为了防低级 CC 或者滥用么。。。至于请求编号,你们 log 能 hook 上才有意义。。。
    akira
        14
    akira  
       2017-04-12 13:21:47 +08:00
    编号参数在特定情况下用处很大的。双向签名也不奇怪呀,不过客户端你校验与否就是另外一回事了。

    ----------------------
    搞这么多事情,不如上个 https
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1229 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:27 · PVG 07:27 · LAX 16:27 · JFK 19:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.