• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jugelizi
V2EX  ›  程序员

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

  •  
  •   jugelizi · Oct 3, 2019 · 6437 views
    This topic created in 2413 days ago, the information mentioned may be changed or developed.

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

    26 replies    2019-10-11 17:11:35 +08:00
    shintendo
        1
    shintendo  
       Oct 3, 2019
    没看懂,不是 post 吗?
    jugelizi
        2
    jugelizi  
    OP
       Oct 3, 2019
    @shintendo 嗯 post 拼接请求地址是 ?username=test&pwd=123 这样的提交的
    weakish
        3
    weakish  
       Oct 3, 2019
    一般 nginx 等服务器日志里会写 url, 所以密码这样敏感的信息不该放 url 里。
    mkeleven
        4
    mkeleven  
       Oct 3, 2019
    其实无所谓的啊,无非是更加容易被攻击而已
    AV1
        5
    AV1  
       Oct 3, 2019 via iPhone
    我想了想,如果是 XHR、fetch、Ajax 提交,拼在 URL 上还是在 body 里好像没啥区别,只是不能太长。但是拼接过程中要记得做 URL encode 吧。
    shanigan
        6
    shanigan  
       Oct 3, 2019
    @jugelizi 那他 post body 里面放什么? 就算有 https, server log/browser history 里面都会有记录
    stillwaiting
        7
    stillwaiting  
       Oct 3, 2019
    以为来到知乎了。。。
    API 谁定的呢?
    感觉流程一般都是:后端提供 API 文档,简单评审,前端根据这个 mock,最后联调
    jugelizi
        8
    jugelizi  
    OP
       Oct 3, 2019
    @shanigan 空的啊
    数据在 url 里已经全有了
    之前 form 时代会在浏览器历史记录里所以有密码泄露风险
    现在呢
    Trim21
        9
    Trim21  
       Oct 3, 2019
    遇到这种网站能不能用就不用…
    learnshare
        10
    learnshare  
       Oct 3, 2019
    找个明白人定一下 API 规则
    GzhiYi
        11
    GzhiYi  
       Oct 4, 2019
    正不正常:不正常
    能不能用:能用
    推荐不推荐:不推荐
    有什么好的建议:定下前后端数据对接的规则。
    ScoutWang
        12
    ScoutWang  
       Oct 4, 2019 via iPad
    密码加时间戳盐做哈希再传,不然你放 url 还是 post body 都不安全
    zqx
        13
    zqx  
       Oct 4, 2019 via Android
    先请求一个公钥,客户端用这个公钥给用户数据编码,然后随便什么 get post 请求把数据发给服务端都可以了。
    只要没加密,放在 request body 和 request header 和 url 都是不安全的
    hyperbin
        14
    hyperbin  
       Oct 4, 2019 via Android
    @zqx 那要 HTTPS 干嘛
    Mutoo
        15
    Mutoo  
       Oct 4, 2019
    URL 传参会被日志和 CDN 记录,容易泄漏。后端的一些框架直接读 request[param] 是不区分 get/post 的,这部分得谨慎处理。
    Mutoo
        16
    Mutoo  
       Oct 4, 2019
    @Mutoo 这里的泄漏不一定是对外泄漏,也有可能是对内泄漏。之差推特就犯过这类错误。
    zqx
        17
    zqx  
       Oct 4, 2019 via Android
    @hyperbin HTTPS 只能保证传输过程中(端到端)的加密吧?到了目标客户端以后,比如企业级的访问网关还是会记录请求信息,再经过各种服务过滤和转发,最后到达业务服务器,这时候数据已经泄露给内部其他系统很多次了
    xiaotuzi
        18
    xiaotuzi  
       Oct 4, 2019 via iPhone
    URL 携带账号密码,并且 post 提交的话,是可以在后台接收到数据的。
    但是,前台把账号密码放到 URL 传递是不对的做法,是不是他前端代码有问题?排查下就好了。
    Takamine
        19
    Takamine  
       Oct 4, 2019 via Android
    能用,但不推荐。
    这样传参的数据格式应该是 application/x-www-form-urlencoded。
    前后端分离在接口交互中,数据格式应该有通用性,一般约定用 application/json 比较好,formData 感觉都用得不多。
    Cbdy
        20
    Cbdy  
       Oct 4, 2019 via Android
    很不妥
    huijiewei
        21
    huijiewei  
       Oct 4, 2019
    GET 的参数日志会记录,日志无法脱敏。
    MikeFeng
        22
    MikeFeng  
       Oct 5, 2019 via Android
    前后分离所有 post 不应该都用 post json 的方式吗?怎么还走 post 表单那套
    skyqqcc
        23
    skyqqcc  
       Oct 5, 2019 via Android
    所以想说明的是后端的 API 根本是 POST 和 GET 都能用的么....
    hyperbin
        24
    hyperbin  
       Oct 6, 2019 via Android
    @zqx 客户端都不可信了,你上什么都没用
    jzmws
        25
    jzmws  
       Oct 6, 2019
    post 和 get (url 挂参) 方式 本质是一样的,只不过一个要工具看,一个直接看请求地址,正确的做法是前端加密,
    MiBAO
        26
    MiBAO  
       Oct 11, 2019
    这明显不妥,不说什么加密至少你最基础的 post json 方式提交得弄撒。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3295 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 12:34 · PVG 20:34 · LAX 05:34 · JFK 08:34
    ♥ Do have faith in what you're doing.