boss 说了一个骚操作。。。

2019-12-05 21:18:32 +08:00
 jaylee4869

前端传不同的类名(比如 com.xxx.UserService ),后端拿到这个名字反射调用它的方法,实现一个 api 动态配置。。。

14546 次点击
所在节点    Java
75 条回复
winglight2016
2019-12-06 16:39:59 +08:00
这就是个伪动态啊,并没有什么特别的优势,还不如在登录时下发一张路由表靠谱一些。
lj3lj3
2019-12-06 16:54:35 +08:00
这不就和前段时间 ThinkPHP 爆出的那个漏洞异曲同工么😂 要搞也必须再搞个白名单
zsdroid
2019-12-06 17:02:09 +08:00
你们 boss 还知道反射啊,厉害了。
Felldeadbird
2019-12-06 17:17:35 +08:00
不知道大家认为有安全问题 是出于什么考虑呢? 白名单怎样实现? 我想到的最多就是一个 鉴权+ token 超时认证?前端很难去基于白名单来验证吧。?这里前端是 浏览器? 还是 APP ?
irobbin
2019-12-06 17:30:06 +08:00
耦合了
KentY
2019-12-06 18:12:45 +08:00
我觉得是 strategy pattern 的 use case.
但描述太简要, 无法确定.
后端一个 strategy manager 可以根据前端传过来的(不一定是类的 qualified name) token, key 等, 来选择 strategy 进行逻辑计算.
itstudying
2019-12-06 19:06:00 +08:00
港交所页面上的接口就是,不过更骚的是他们传个类似 sql 的参数
reus
2019-12-06 19:20:58 +08:00
少见多怪。
JCZ2MkKb5S8ZX9pq
2019-12-06 19:25:14 +08:00
好像跟做一个 token 没差啊,只是 token 作为方法名。
虽然不直接暴露 api,但 token 的算法不是还在前端嘛?

这种除非搞得更骚,更容易出错,而且一错永封,那可能可以拖慢攻击效率。
Torpedo
2019-12-06 20:18:01 +08:00
有可维护的 graphql 啥的,就算你自己搞,最好完善一点
gbin
2019-12-07 09:33:55 +08:00
swagger 了解一下:)
ecloud
2019-12-07 18:25:54 +08:00
@chengyiqun +1 我的一个产品也是这样类似的方法,DB 里维护一个对应关系表,uri -- 方法名
waterlaw
2019-12-08 10:30:46 +08:00
@Felldeadbird 安全问题应该是保证接口是用户有权限访问的,后端提供一个 url 接口告诉前端哪些方法可以调用(白名单),我的理解。
waterlaw
2019-12-08 10:37:16 +08:00
应用场景不明确,初看可以参考 #66 的方法,用策略模式 + java 注解,反射, 前端传个 id, 后端写个存常量的文件 id=com.google.UserService#method,反射根据 id 查找对应方法。
PoetAndPoem
2019-12-09 15:39:03 +08:00
@areless 直接写 sql, 岂不是真全栈,写一个 rest 就通用了吗

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

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

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

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

© 2021 V2EX