为了账号安全,请及时绑定邮箱和手机立即绑定

回声框架,在哪一刻降级特权?

回声框架,在哪一刻降级特权?

Go
一只斗牛犬 2022-09-05 10:58:06
我使用 echo 框架来创建我的 API 服务器。它由 systemd 启动,默认情况下需要 root,以便获取低于 1024 的端口。为了安全起见,我喜欢在 echo 框架获取侦听端口后降级 go 程序的权限。我知道如何降级,但我找不到合适的事件/回调?问题是,这不会回来。我可以创建一个并行线程,并尝试找到回显会话的一些状态值,告诉我端口已打开,但我也找不到这样的状态指示。echo.Start()echo.StartAutoTLS()我如何确保在获取端口后执行一些代码(并确定)?到目前为止,我在创建服务器之前运行一个并行go线程,然后等待5秒钟进行降级。到目前为止,它的工作原理是,但这是黑客,我不喜欢它:-(
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您可以使用 e.ListenerAddr() 来检查端口是否打开。它将返回 nil,直到端口打开。


func degradePrivileges(e *echo.Echo, userName string) { 

    for { adr := e.ListenerAddr() if adr != nil { 

        degradeMe(userName) break 

    } 

    time.Sleep(100 * time.Millisecond) } 


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信