被客户告知 HTTP 的 PUT 请求不安全,甩锅给我们要求整改

2021-11-17 14:17:10 +08:00
 TossPig
真的是要吐,这段时间好几个客户单位反馈业务系统无法使用,一直报错

上去一看,PUT 请求全部被拦截,也不知道家防火墙商干的好事,默认把 PUT 请求全部给禁了,还给客户培训说 PUT 请求就是不安全

给客户解释了半天,根本不听,就说防火墙这样设置肯定有他的道理,说是我们使用了不安全的请求方法,要我们负责安全整改

全站遵循 RESTful 设计的呀~简直要疯了~也不知道哪个 wbd 做的默认规则
25082 次点击
所在节点    程序员
214 条回复
pkoukk
2021-11-19 11:01:21 +08:00
@lesismal 所以,现在说的这些问题还普遍存在么?如果不存在了,PUT 是不是就能用了呢
lesismal
2021-11-19 11:13:42 +08:00
@leeg810312
#88 #178
这些,你能看懂吗?知道我在说啥吗?能读懂我的观点、论据、对比说明吗?知道你自己在曲解、驴唇不对马嘴无论据口嗨吗?

> 你的回答是不是趋势不一定对,主流不一定好?看来你是权威,只有你才能决定什么是对,什么是好

#132 里我回复过你 “流行不代表就是主流,即使主流也不等价于最优”
看准了,“”主流也不等价于最优“,这句话你就推断出 “主流不一定好”,“好”跟“最优”是一码事吗?你了解除了 HTTP 之外的各种协议吗?知道其他各种领域各种场景各种协议为啥不直接用 HTTP 吗?知道 HTTP 这么 “牛逼” 为啥大家还要搞 RPC 还要搞 Websocket ,为啥其他不受浏览器限制的还要直接 tcp 自定义协议,还有很多为啥要 UDP ?
知道 HTTP 1.1 主要解决了啥吗?知道为啥还要继续搞 HTTP 2.0 、2.0 解决了啥吗?知道为啥 HTTP 2.0 还没普及就 HTTP 3.0 标准都基本达成一致了吗?知道 HTTP 3.0 为啥用 谷歌 QUIC 知道为啥要基于 UDP 吗?

你眼里的好,是因为你接触到的技术范围就局限在你熟悉的 HTTP 周边小范围内,并且你只是使用者,自己没做过这些基础设施没思考过当下所用之物有哪些缺点、不足、不能满足哪些需要、可以做哪些改进优化,所以你都不看我在对比什么。别跟个井底之蛙似的

#132 回复你的我再贴一次:
"所以这些楼层下来,相当于我在说 A 不如 B ,并且我解释为什么 A 不如 B ;然后你们就说你们在用 A ,你们给大厂的方案也是在用 A ,云厂也在用 A ,驴唇不对马嘴地怼我呢,多数都没怼到我聊的点上,也不提一些论据“
lesismal
2021-11-19 11:15:15 +08:00
@pkoukk
我也没说过不能用啊,说几句不好,大家就都觉得我说不能用了 :joy:

看下 #178 和多几个楼的回复
cbasil
2021-11-19 11:18:22 +08:00
大道至简,post 能干的事情还搞一堆 PUT/DELETE 干啥呢,是工作不饱和还是闲的蛋疼,你看看淘宝,腾讯等公开接口文档,哪个不是用 get/post 的,有几个做了 RESTful 。
lesismal
2021-11-19 11:22:30 +08:00
> 现在有点趋势上的包袱反而在前端,当年历史原因这套系统选择了 angular 作为底层框架,进新人特别慢,上手 angular 确实需要两周的时间,现在国内几乎是 vue 的天下

这确实了,前端历史包袱也重

> Websocket 这东西,一直没怎么用起来,看过有有人用 Websocket 写的 bbs 项目,各种原因也没推广开,没测过,但是有状态协议,对服务器的压力还是比无状态大的

有状态的协议,实现复杂度比 CURD 要难得多
性能压力未必更大,因为有的需求,如果用无状态只能轮询,轮询的压力更大,得按实际场景对比
另外就是,复杂些的需求,无状态真的搞不定,所以才会额外要搞 RPC 要搞各种自定义协议,这也是我不喜欢 HTTP 的原因之一
banyudu
2021-11-19 12:00:54 +08:00
道不同不相为谋,时间会证明一切
v2jjCom
2021-11-19 12:09:25 +08:00
换个工作然后就不用管这个整改了,多省事。还有问题访问我的用户名站点吧
DOLLOR
2021-11-19 12:59:42 +08:00
我们除了静态资源,其他一律 post ,如此一来,前端后端运维都皆大欢喜,早点下班,岂不美哉。🐶
rehoni
2021-11-19 13:12:41 +08:00
有些系统内,是只允许 post 和 get 的,这个还是得稍微注意一下
iseki
2021-11-19 13:13:06 +08:00
@lesismal 这就是不同的团队自己的选择了,你要把 HTTP 当应用层协议用,那就严格遵守 RESTful ;你要把 HTTP 当应用层协议的承载者用,那就意味着整个生态里,从头到尾所有的问题都需要自己解决。
eason1874
2021-11-19 14:18:25 +08:00
HTTP Methods 在流量上体现就一个单词的区别,要不要遵守语义是服务器的选择

接受一部分语义,然后说其他语义不安全,很难不笑出声。有这本事应该去把 GCP 、AWS 、Azure 、阿里云、腾讯云、百度云等大厂的 RESTful API 给黑了

客户提出这种问题,我只会解释一遍。如果客户坚持 PUT 就是不安全,我就知道是对牛弹琴,内心吐槽一句傻子,把他列为能用概念忽悠的高溢价非专业客户,二话不说,按要求做兼容,后续需求提高报价
bootvue
2021-11-19 14:30:06 +08:00
@eason1874 正解
buffzty
2021-11-19 14:33:03 +08:00
@lesismal 我的项目里也全部都是 post + json 只有 /version /health/live,ready /swagger /metrics 这几个固定的 path 是 get 其余全是 post. 很大的原因是不想前端天天问我为什么接口调不通. 他们一天到晚随机 contentType 和 method 调接口 然后问我接口有问题
Joker123456789
2021-11-19 15:05:05 +08:00
远离 restful ,拥抱 RPC 吧,get ,post 一把梭。
coodyz
2021-11-19 15:18:13 +08:00
@eason1874 优解。另外,接口风格这东西,自己咋方便咋来,团队舒服就行。
lesismal
2021-11-19 16:31:41 +08:00
> 接受一部分语义,然后说其他语义不安全,很难不笑出声。有这本事应该去把 GCP 、AWS 、Azure 、阿里云、腾讯云、百度云等大厂的 RESTful API 给黑了

我真是佩服你们这些人断章取义、拿出别人观点中的一部分词进行曲解的能力

之前的好几楼我已经都说过了,这时代电子产品多眼睛容易疲劳,视力不好建议多做做眼保健操
lesismal
2021-11-19 16:32:08 +08:00
@buffzty 所以说,用过的人直呼内行!
adoal
2021-11-19 16:56:47 +08:00
就技术而言,他们虾扯蛋。就实际工作而言,看博(撕)弈(逼)结果吧。
patrickyoung
2021-11-19 20:17:29 +08:00
可以问一下是哪家防火墙吗,说英文名的最后一两个字母我就知道了。如果是相关的话可以协助反馈处理一下。但是 PUT 这个方法开启没有问题,有问题的是你做没做检测和鉴权,如果做了,你完全可以直接怼回去,脱离业务谈安全就是瞎扯。
shyangs
2021-11-19 20:56:11 +08:00
一律 post ,如此一來,前端後端運維都皆大歡喜,早點下班,豈不美哉。

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

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

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

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

© 2021 V2EX