V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yesterdaysun
V2EX  ›  问与答

用 Cookie 传递普通的请求参数是正常做法吗?

  •  
  •   yesterdaysun · 2019-09-26 15:48:56 +08:00 · 1259 次点击
    这是一个创建于 1870 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天朋友问我一个他们公司的代码问题, 页面有很多数据, 分 5 次异步加载, 每次加载设置参数是这样的:

    document.cookie="type="+type;
    $.ajax({
        headers:{"Cookie":document.cookie},
        success: ...
        ...
    })
    

    然后说以前一直没问题, 直到今天浏览器升级了发现问题, 5 次加载有时顺序会有问题, 有一个没加载, 有一个加载了 2 次

    我一看说你这个异步明显有线程问题啊, 有可能其中一个加载在异步的时候参数被其他的加载覆盖了, 为什么不用 data 参数呢, 他说他们的架构就是这样的

    因为他们是大厂, 我现在略微有点迷茫, 这样做难道有什么特别的意义好处吗? 我强行想了一个好处, 用了 Cookie 传参数, 就可以隐藏 URL 参数, 后台也可以动态读参数, 不用定义一大堆的参数对象.

    但是坏处就是没有强类型检查了.

    有经验的大佬也来说说想法呗.

    6 条回复    2019-09-27 10:52:50 +08:00
    yusen01
        1
    yusen01  
       2019-09-26 15:59:25 +08:00
    没见过这种用法。同时发多个请求的话,cookie 相当于是共享变量,存在竞争问题,可能返回的数据是错误的。正常参数要么放 URL 里,要么放 body 里。
    yusen01
        2
    yusen01  
       2019-09-26 16:01:22 +08:00
    Cookie 里一般放 token,session id 这种不变的内容。
    yesterdaysun
        3
    yesterdaysun  
    OP
       2019-09-26 19:08:45 +08:00 via iPhone
    从朋友那里听到一个新的说法,说是上面 review 代码,如果请求直接带参数有安全问题,所以需要用 cookie 传参数。

    是这样吗?
    zhihaofans
        4
    zhihaofans  
       2019-09-26 19:11:34 +08:00 via Android
    @yesterdaysun 你就不怕重复或者漏吗
    yiwayhb
        5
    yiwayhb  
       2019-09-26 19:12:40 +08:00 via Android
    @yesterdaysun 简直是瞎扯
    说说是那个大厂,大家回避下
    wysnylc
        6
    wysnylc  
       2019-09-27 10:52:50 +08:00
    神特么安全问题哈哈哈哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1865 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.