安全 QA 说只允许 POST/GET 请求,其它的都不安全?

2023-07-25 16:23:55 +08:00
 dog82

其它的 HTTP 方法都被评为中级风险,不整改估计过不了安全关,系统没法上线,这事如何破? 我严格要求团队遵循 restful 规范,写了一堆 PUT/Delete/BATCH

14194 次点击
所在节点    Java
161 条回复
mdn
2023-07-25 17:27:10 +08:00
前端拦截非 POST ,在 request headers 里添加 x-method
后端拦截处理 x-method
restful 曲线救国
flyqie
2023-07-25 17:27:12 +08:00
@zoharSoul #39

极少数情况下。

get 和非 200 http code 也可能搞出来问题。。

所以 post + http code 200 在某些场合下纯粹是不得已而为之。。
mdn
2023-07-25 17:29:50 +08:00
iosyyy
2023-07-25 17:31:39 +08:00
@guilinxiaobing #6 实际上是 25 度的水和 25 度的 h2o
ma836323493
2023-07-25 17:31:59 +08:00
在我看来 restful 规范 需要很多方的默契。 记得刚毕业的时候,完全遵照 restful , 前端不配合, 后来就改了,restful 确实不咋地, 我喜欢见明知意 的接口
blackmirror
2023-07-25 17:34:04 +08:00
这不很好吗,明正言顺的直接全 POST
LeegoYih
2023-07-25 17:35:05 +08:00
我们集团很多项目都是 POST 梭哈的,HTTP Status 除了 200 401 500 其他都不用,公司项目能跑就行。
见过项目用 RESTful ,经过多年迭代已经变成 POST 梭哈的形状了,有些接口命名很痛苦,比如消息撤回,驳回通过,审批通过这种。
ytmsdy
2023-07-25 17:35:42 +08:00
我 TMD 还碰到过说 443 端口有漏洞,然后领导让把 443 端口换成其他端口。
刚刚开始我还怼了一下,架不住隔三岔五的过来说,我捏着鼻子给改了。
shyangs
2023-07-25 17:43:02 +08:00
RESTful, Lisp 這類學院派的東西,我通常用來寫學校作業,教授看了高興.

公司真實業務就上 POST 、Java ,自己好招人,也免得遇到甲方找麻煩 平白無故多幾天加班為他們改.
nullpoint007
2023-07-25 17:43:20 +08:00
@ytmsdy 你这个是真的狠,https 默认端口都能改,哈哈
cominghome
2023-07-25 17:46:20 +08:00
让他说清楚为什么不安全,他要是说不明白就不给尾款
zpf124
2023-07-25 17:49:07 +08:00
@baiyi 这东西不是百度谷歌随便一搜就找得到么

https://www.ruanyifeng.com/blog/2011/09/restful.html

https://datatracker.ietf.org/doc/html/rfc4918


restful 作者只是提了一个想法,但没有形成什么明确的规则协议,所以关于 restful 的细节大家各有各的理解,因为最初的作者就是论文里笼统一说,不像 graohQL 。

而 WebDAV ,这玩意出现的不算太晚,但最初人家都是自己客户端和服务通信的,只是基于 http 协议了而已,这样不安客户端的用户也能查看,它和 gRPC 一样,属于特定领域在 http 上实现的私有协议。
WEB 主流世界用不上他们这功能自然支持情况很差,尤其是后端,这是 spring 官方有我提到的那个拦截器的原因,因为在 restful 火起来的同时期的 tomca 7 吧还是 8 都还不支持 PUT 请求。
akira
2023-07-25 17:49:44 +08:00
你们自己花钱请的评审团队。。大哥,你这钱花的有点亏啊。。
baiyi
2023-07-25 17:54:13 +08:00
@zpf124 #52 看来你对 rest 有点理解,但不多
dode
2023-07-25 17:54:35 +08:00
PUT/Delete 和 POST 安全性上是一样的
est
2023-07-25 17:57:51 +08:00
他说的不安全不是说「语意」不安全,也不是「业务」或者「设计」不安全,也不是资金不安全,也不是「架构」不安全,而是说:


安全设备/日志分析/工具套件/网关盒子无法处理 GET/POST 之外的 http verb ,无法管控或者审计,所以不安全。
wushenlun
2023-07-25 17:58:25 +08:00
这是对的,引擎支持的方法存在风险,比如 put 的 webshell 上传 ,除了语义不同基本上没区别
QlanQ
2023-07-25 17:59:02 +08:00
又学到了
我用 restful 只是为了路由好看
不需要太多命名
例如 /user/5 ,一个路径通过不同的 method 就可以实现多个功能
如果都用 post 的话,就要好几个路径

命名困难症
lambdaq
2023-07-25 18:01:01 +08:00
> restful 是 作者发现人家 WebDAV 搞的这套 http method 很符合他的想法,所以复用(偷)了他们定义的 http method 而已,仅此而已,实际两者没什么关系。

@zpf124 其实是反过来的。先是先 Roy Fielding 发明了一套「万物皆资源」的拍脑袋理论,然后有人拿「 unix 万物皆文件」给套出来一个 webdav 。参考 /t/867197
est
2023-07-25 18:02:23 +08:00
/t/816040 结贴

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

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

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

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

© 2021 V2EX