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

2019-10-03 22:29:50 +08:00
 jugelizi

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

5577 次点击
所在节点    程序员
26 条回复
shintendo
2019-10-03 22:31:49 +08:00
没看懂,不是 post 吗?
jugelizi
2019-10-03 22:34:26 +08:00
@shintendo 嗯 post 拼接请求地址是 ?username=test&pwd=123 这样的提交的
weakish
2019-10-03 22:36:29 +08:00
一般 nginx 等服务器日志里会写 url, 所以密码这样敏感的信息不该放 url 里。
mkeleven
2019-10-03 22:36:47 +08:00
其实无所谓的啊,无非是更加容易被攻击而已
DOLLOR
2019-10-03 22:41:48 +08:00
我想了想,如果是 XHR、fetch、Ajax 提交,拼在 URL 上还是在 body 里好像没啥区别,只是不能太长。但是拼接过程中要记得做 URL encode 吧。
shanigan
2019-10-03 22:44:46 +08:00
@jugelizi 那他 post body 里面放什么? 就算有 https, server log/browser history 里面都会有记录
stillwaiting
2019-10-03 22:46:44 +08:00
以为来到知乎了。。。
API 谁定的呢?
感觉流程一般都是:后端提供 API 文档,简单评审,前端根据这个 mock,最后联调
jugelizi
2019-10-03 23:01:14 +08:00
@shanigan 空的啊
数据在 url 里已经全有了
之前 form 时代会在浏览器历史记录里所以有密码泄露风险
现在呢
Trim21
2019-10-03 23:02:30 +08:00
遇到这种网站能不能用就不用…
learnshare
2019-10-03 23:45:26 +08:00
找个明白人定一下 API 规则
GzhiYi
2019-10-04 00:37:27 +08:00
正不正常:不正常
能不能用:能用
推荐不推荐:不推荐
有什么好的建议:定下前后端数据对接的规则。
ScoutWang
2019-10-04 02:23:50 +08:00
密码加时间戳盐做哈希再传,不然你放 url 还是 post body 都不安全
zqx
2019-10-04 07:03:45 +08:00
先请求一个公钥,客户端用这个公钥给用户数据编码,然后随便什么 get post 请求把数据发给服务端都可以了。
只要没加密,放在 request body 和 request header 和 url 都是不安全的
hyperbin
2019-10-04 07:15:49 +08:00
@zqx 那要 HTTPS 干嘛
Mutoo
2019-10-04 07:26:36 +08:00
URL 传参会被日志和 CDN 记录,容易泄漏。后端的一些框架直接读 request[param] 是不区分 get/post 的,这部分得谨慎处理。
Mutoo
2019-10-04 07:27:15 +08:00
@Mutoo 这里的泄漏不一定是对外泄漏,也有可能是对内泄漏。之差推特就犯过这类错误。
zqx
2019-10-04 08:21:49 +08:00
@hyperbin HTTPS 只能保证传输过程中(端到端)的加密吧?到了目标客户端以后,比如企业级的访问网关还是会记录请求信息,再经过各种服务过滤和转发,最后到达业务服务器,这时候数据已经泄露给内部其他系统很多次了
xiaotuzi
2019-10-04 08:40:32 +08:00
URL 携带账号密码,并且 post 提交的话,是可以在后台接收到数据的。
但是,前台把账号密码放到 URL 传递是不对的做法,是不是他前端代码有问题?排查下就好了。
Takamine
2019-10-04 08:49:33 +08:00
能用,但不推荐。
这样传参的数据格式应该是 application/x-www-form-urlencoded。
前后端分离在接口交互中,数据格式应该有通用性,一般约定用 application/json 比较好,formData 感觉都用得不多。
Cbdy
2019-10-04 09:00:14 +08:00
很不妥

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/606203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX