对接同事的接口,他定义的所有接口都是 post 请求,理由是 https 用 post 更安全

2022-01-23 10:29:15 +08:00
 caicaiwoshishui
之前习惯使用 restful api ,如果说 https 只有 post 请求是安全的话?那为啥还需要 get 、put 、delete ?我该如何反驳他。
28123 次点击
所在节点    程序员
195 条回复
gamexg
2022-01-23 16:25:22 +08:00
我是能全部走 post 就都走,理由:

restful 不能覆盖所有情况,或者说很麻烦

get 请求的参数会被作为 url 写入日志,敏感参数就不能用 get 。

一套 get 、一套 post 需要实现两遍。

我懒得弄,直接 post 封装一套加密、签名机制,然后所有请求都用这一套机制完事,不再为 get 、post 分开实现。
metamask
2022-01-23 16:50:07 +08:00
不需要反驳,你看这楼里就好,

大部分人不是技术不能理解什么东西是对的,什么东西是不对的,就是没有那个能力去理解什么东西是好的,什么东西不好的。
treblex
2022-01-23 16:51:10 +08:00
算好的了,遇到过 get 提交表单的吗
wormcy
2022-01-23 17:18:04 +08:00
别拿安全当幌子
tqyq88
2022-01-23 17:33:28 +08:00
想起以前的 leader ,用个 restful 就像得了斯德哥尔摩症一样,GET POST DELETE PUT 一定要整整齐齐。烦死了,不是一路人
learnshare
2022-01-23 17:46:21 +08:00
实际上你只能选择忍受,或者 run
有些人是无法讲道理的
FrankAdler
2022-01-23 18:11:00 +08:00
我一女前端同事,我让她在调用我接口的时候 query 里加上个参数,请求还是 post ,回我,加上 query 就只能用 get 了。。。我告诉她 post 的 url 也能加 query
结论就是,别指望同事的水平有多高,赶紧干完活回家抱老婆打游戏都行。。当然我的这个例子我跟人家废话了两句,是因为加在 post 的 body 里反而更麻烦。
cenbiq
2022-01-23 18:45:00 +08:00
@tqyq88 为啥不对齐?这不就跟筷子吃饭,勺子喝汤一个道理吗
Huelse
2022-01-23 19:07:52 +08:00
然而在某些网络环境下,post 之外的请求可能会被拦截,具体可看以前讨论过的 /t/816040
otakustay
2022-01-23 19:23:01 +08:00
没什么特别追求的无所谓,大问题无非是缓存和 Service Worker 用不了,进一步的 PWA 做不出来。不考虑这些的话,POST 就 POST 呗
winglight2016
2022-01-23 20:00:53 +08:00
post 跟安全没关系。
post 和 get 、delete 、put 对于 http 来说,没有太大区别。
post 和 get 最大的区别,个人看来,get 被认为是读操作,post 被认为是写操作,因此 get 请求可以设置缓存(浏览器、中间件),如果是微服务 /CDN ,可以统一设置缓存条件。

回复中,那些看不起 restful 的,真的需要了解一下 restful 的来龙去脉。很多代码规范、设计范式,并不是“非此不可”,仅仅是为了“可读性”罢了。

btw ,说 get 参数会被日志记录的,这到底是什么涉密 URL ,真的不想人知道,把 query string 全部 encode 呀。
iseki
2022-01-23 20:01:07 +08:00
没必要,提一下是在说服不了,就努力换团队好了
seansong
2022-01-23 20:29:18 +08:00
还不就是怎么习惯怎么来么,谁强势听谁的
seerhut
2022-01-23 20:36:53 +08:00
上一周我们外包向我抱怨部门其他处室的系统的接口是 GET 方法,但是参数放 body 中,你们这点小事算啥
strongcoder
2022-01-23 20:52:31 +08:00
我们也是要求后台全部都用 POST,没啥 大家都方便
jsjjdzg
2022-01-23 21:14:24 +08:00
restful 就是。。。不说了,全部 Post 无敌,你再研究下 restful 的设计和规范 就会发现都是垃圾。。。
Vitta
2022-01-23 21:28:03 +08:00
感情写相对标准点还是错的了? 这是服了这一群评论了
zhigang1992
2022-01-23 21:36:58 +08:00
https 传输层的话,POST 和 GET 应该是没有区别的
zhigang1992
2022-01-23 21:38:19 +08:00
但是很多 http server 会打印请求地址到日志里面。

如果是用纯 REST 的话,可能会把一些敏感信息打印到日志里面。e.g. 银行卡号 / ID 之类的。

用 POST 的话可以避免这种问题
efaun
2022-01-23 22:47:22 +08:00
如果你是他领导, 你就把他开了
如果你跟他平级, 那你就忍着
如果他是你领导, 要么做要么滚

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

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

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

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

© 2021 V2EX