如何看待前端在用户登录使用 url 地址传参的行为 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jugelizi
V2EX    程序员

如何看待前端在用户登录使用 url 地址传参的行为

  •  
  •   jugelizi 2019-10-03 22:29:50 +08:00 6188 次点击
    这是一个创建于 2269 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前后端分离
    post 请求登录
    已经是 https 的情况下
    前端把账号密码拼接在 url 里
    后端也正常处理登录成功了
    友军的项目 正常吗?

    26 条回复    2019-10-11 17:11:35 +08:00
    shintendo
        1
    shintendo  
       2019-10-03 22:31:49 +08:00
    没看懂,不是 post 吗?
    jugelizi
        2
    jugelizi  
    OP
       2019-10-03 22:34:26 +08:00
    @shintendo 嗯 post 拼接请求地址是 ?username=test&pwd=123 这样的提交的
    weakish
        3
    weakish  
       2019-10-03 22:36:29 +08:00
    一般 nginx 等服务器日志里会写 url, 所以密码这样敏感的信息不该放 url 里。
    mkeleven
        4
    mkeleven  
       2019-10-03 22:36:47 +08:00
    其实无所谓的啊,无非是更加容易被攻击而已
    AV1
        5
    AV1  
       2019-10-03 22:41:48 +08:00 via iPhone
    我想了想,如果是 XHR、fetch、Ajax 提交,拼在 URL 上还是在 body 里好像没啥区别,只是不能太长。但是拼接过程中要记得做 URL encode 吧。
    shanigan
        6
    shanigan  
       2019-10-03 22:44:46 +08:00
    @jugelizi 那他 post body 里面放什么? 就算有 https, server log/browser history 里面都会有记录
    stillwaiting
        7
    stillwating  
       2019-10-03 22:46:44 +08:00
    以为来到知乎了。。。
    API 谁定的呢?
    感觉流程一般都是:后端提供 API 文档,简单评审,前端根据这个 mock,最后联调
    jugelizi
        8
    jugelizi  
    OP
       2019-10-03 23:01:14 +08:00
    @shanigan 空的啊
    数据在 url 里已经全有了
    之前 form 时代会在浏览器历史记录里所以有密码泄露风险
    现在呢
    Trim21
        9
    Trim21  
       2019-10-03 23:02:30 +08:00
    遇到这种网站能不能用就不用…
    learnshare
        10
    learnshare  
       2019-10-03 23:45:26 +08:00
    找个明白人定一下 API 规则
    GzhiYi
        11
    GzhiYi  
       2019-10-04 00:37:27 +08:00
    正不正常:不正常
    能不能用:能用
    推荐不推荐:不推荐
    有什么好的建议:定下前后端数据对接的规则。
    ScoutWang
        12
    ScoutWang  
       2019-10-04 02:23:50 +08:00 via iPad
    密码加时间戳盐做哈希再传,不然你放 url 还是 post body 都不安全
    zqx
        13
    zqx  
       2019-10-04 07:03:45 +08:00 via Android
    先请求一个公钥,客户端用这个公钥给用户数据编码,然后随便什么 get post 请求把数据发给服务端都可以了。
    只要没加密,放在 request body 和 request header 和 url 都是不安全的
    hyperbin
        14
    hyperbin  
       2019-10-04 07:15:49 +08:00 via Android
    @zqx 那要 HTTPS 干嘛
    Mutoo
        15
    Mutoo  
       2019-10-04 07:26:36 +08:00
    URL 传参会被日志和 CDN 记录,容易泄漏。后端的一些框架直接读 request[param] 是不区分 get/post 的,这部分得谨慎处理。
    Mutoo
        16
    Mutoo  
       2019-10-04 07:27:15 +08:00
    @Mutoo 这里的泄漏不一定是对外泄漏,也有可能是对内泄漏。之差推特就犯过这类错误。
    zqx
        17
    zqx  
       2019-10-04 08:21:49 +08:00 via Android
    @hyperbin HTTPS 只能保证传输过程中(端到端)的加密吧?到了目标客户端以后,比如企业级的访问网关还是会记录请求信息,再经过各种服务过滤和转发,最后到达业务服务器,这时候数据已经泄露给内部其他系统很多次了
    xiaotuzi
        18
    xiaotuzi  
       2019-10-04 08:40:32 +08:00 via iPhone
    URL 携带账号密码,并且 post 提交的话,是可以在后台接收到数据的。
    但是,前台把账号密码放到 URL 传递是不对的做法,是不是他前端代码有问题?排查下就好了。
    Takamine
        19
    Takamine  
       2019-10-04 08:49:33 +08:00 via Android
    能用,但不推荐。
    这样传参的数据格式应该是 application/x-www-form-urlencoded。
    前后端分离在接口交互中,数据格式应该有通用性,一般约定用 application/json 比较好,formData 感觉都用得不多。
    Cbdy
        20
    Cbdy  
       2019-10-04 09:00:14 +08:00 via Android
    很不妥
    huijiewei
        21
    huijiewei  
       2019-10-04 09:14:39 +08:00
    GET 的参数日志会记录,日志无法脱敏。
    MikeFeng
        22
    MikeFeng  
       2019-10-05 13:01:50 +08:00 via Android
    前后分离所有 post 不应该都用 post json 的方式吗?怎么还走 post 表单那套
    skyqqcc
        23
    skyqqcc  
       2019-10-05 16:42:19 +08:00 via Android
    所以想说明的是后端的 API 根本是 POST 和 GET 都能用的么....
    hyperbin
        24
    hyperbin  
       2019-10-06 07:31:11 +08:00 via Android
    @zqx 客户端都不可信了,你上什么都没用
    jzmws
        25
    jzmws  
       2019-10-06 11:23:32 +08:00
    post 和 get (url 挂参) 方式 本质是一样的,只不过一个要工具看,一个直接看请求地址,正确的做法是前端加密,
    MiBAO
        26
    MiBAO  
       2019-10-11 17:11:35 +08:00
    这明显不妥,不说什么加密至少你最基础的 post json 方式提交得弄撒。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1320 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:03 PVG 01:03 LAX 09:03 JFK 12:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86