安全RCE之未授权访问分析(16)

2023-05-02 来源:飞速影视
首先可以看到路由注册在结构体routeEntry中,然后返回了一个数组赋值给u.Routes。

安全RCE之未授权访问分析


用于储存请求路径和对应handler。以下是路由注册方法route,接收者为upstream结构体。实现功能传入正则字符串形式路径和对应处理handler存入
func (u *upstream) route(method, regexpStr string, handler http.Handler, opts ...func(*routeOptions)) routeEntry { ... //注册路由绑定handler return routeEntry{ method: method, regex: compileRegexp(regexpStr), handler: handler, matchers: options.matchers, }}
结构体的成员Routes指向一个数组。
type upstream struct { config.Config URLPrefix urlprefix.Prefix Routes []routeEntry RoundTripper http.RoundTripper CableRoundTripper http.RoundTripper accessLogger *logrus.Logger}
查看对该成员的操作位置,位于的方法中,这里通过遍历调用isMatch对全局请求进行了路由匹配,最后调用相应的handler。
func (u *upstream) ServeHTTP(w http.ResponseWriter, r *http.Request) { ... // Look for a matching route var route *routeEntry for _, ro := range u.Routes { if ro.isMatch(prefix.Strip(URIPath), r) { route = &ro break } } ... //调用相应handler route.handler.ServeHTTP(w, r)}
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号