TSINGSEE青犀视频RTSP协议视频智能分析平台EasyNVR如何优化HTTP协议请求方式的安全问题?
目前TSINGSEE青犀视频研发的云边端架构视频平台,比如EasyNVR登录基本使用的是Http协议,如果需要通过Https进行登录,则需要配置SSL证书。
HTTP1.0版本定义了三种请求方法:GET、POST、HEAD。新一代的HTTP1.1版本新增了五种请求方法OPTIONS、PUT、DELETE、TRACE和CONNECT方法。
由于请求方法复杂繁多,因此在使用的时候如果启用了不必要的HTTP方法可能会带来安全问题。因此我们建议在不影响业务的前提下,禁用不必要的HTTP方法。
接口的请求方式是服务端这边规定的,修改服务端的位置即可。
allowMethod := utils.Conf().Section("base_config").Key("allow_method").MustString("GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS")
allowMethods := strings.Split(allowMethod, ",")
corsConfig := cors.Config{
// 允许的请求格式
AllowMethods: allowMethods,
AllowHeaders: []string{"Origin", "Content-Length", "Content-Type"},
AllowCredentials: true,
MaxAge: 12 * time.Hour,
}
if allAllOrigins {
// 允许的域名或者IP
corsConfig.AllowOrigins = allowOrigins
corsConfig.AllowOriginFunc = func(origin string) bool { return false }
} else {
corsConfig.AllowAllOrigins = true
}
Router.Use(cors.New(corsConfig))
allowMethod就是接口允许的请求方式,我们需要改为支持在配置文件进行配置的方式。如果不配置,则默认有GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS这些请求方式。