ClouGence / hasor

Hasor是一套基于 Java 语言的开发框架,区别于其它框架的是 Hasor 有着自己一套完整的体系,同时还可以和先有技术体系做到完美融合。它包含:IoC/Aop容器框架、Web框架、Jdbc框架、RSF分布式RPC框架、DataQL引擎,等几块。
http://www.hasor.net
Apache License 2.0
983 stars 273 forks source link

如何增加管理界面安全性? #43

Closed tzxylao closed 4 years ago

tzxylao commented 4 years ago

管理界面http://localhost:9000/interface-ui/ 只要地址暴露了,就没安全性了,我本身集成了spring-security-oauth2用来做token认证,如何做到界面登录认证?

zycgit commented 4 years ago

有开关可以控制是否打开,生产不建议打开。

# 启用 Dataway 功能(默认不启用)
HASOR_DATAQL_DATAWAY=true
# 开启 ui 管理功能(注意生产环境必须要设置为 false,否则会造成严重的生产安全事故)
HASOR_DATAQL_DATAWAY_ADMIN=true

# (可选)API工作路径
HASOR_DATAQL_DATAWAY_API_URL=/api/
# (可选)ui 的工作路径,只有开启 ui 管理功能后才有效
HASOR_DATAQL_DATAWAY_UI_URL=/interface-ui/
tzxylao commented 4 years ago

@zycgit 虽然可以理解生产不能轻易更改,但既然做了这样灵活的功能,却要在生产关闭,我试了光改数据库是不能让接口失效或有效的,也理解缓存效率更高,那么界面的禁用功能是不是有点鸡肋了,禁用应该是生产环境突然出什么问题,避免问题扩大快速禁用该接口,生产环境不用感觉框架的可用性也下降了一大截

zycgit commented 4 years ago

在上 “生产环境” 之前通常是需要在一个 “预发环境” 的地方做测试,当测试通过之后再把代码发布到生产环境上。

理论上生产环境的代码是不能随意改动的 UI 如果是打开的,那么就相当于给了一个口子可以任意修改生产环境的配置。这样一来就极不安全了。

你说的生产环境也要提供界面来修改的这种情况,我建议是在 Dataway 之前加装一个 “拦截器/过滤器” 在程序里面做一下预处理。比方说登录判断。