前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TSINGSEE青犀视频流媒体平台为什么会存在跨域问题?

TSINGSEE青犀视频流媒体平台为什么会存在跨域问题?

原创
作者头像
TSINGSEE青犀视频
修改2021-07-07 18:10:17
5070
修改2021-07-07 18:10:17
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频

在EasyNVR、EasyGBS、EasyDSS这一类视频平台中,经常会碰到用户问我们跨域相关的问题,在视频流的传输上,某些项目需要将视频流嵌入第三方平台或者app进行直播,这时极大可能会产生跨域相关的问题,这并不是传输上的问题,而是浏览器自身就有的机制。

我们来探寻一下跨域发生的原因。一般在网络访问中,请求的url地址必须与浏览器上的url地址处于同域上,也就是域名、端口、协议相同。假如在本地上的域名是A,请求另外一个域名B的一段数据,这时浏览器就会产生报错,该报错就是同源策略的保护,也就是我们本文讲的跨域出现的原因。简单来说,就是前端调用的后端接口不属于同一个域(域名或端口不同),就会产生跨域问题。

部分网友会使用反向代理的方法来解决遇见的跨域问题,跨域只是浏览器向服务器发送请求的时候,浏览器的限制,而服务器和服务器之间是没有跨域的限制的,反向代理是利用代理服务器接收到请求之后,转发给真正的服务器,并把结果返回到浏览器上。但在我们的流媒体平台内采用了其他方法。

理论上,解决跨域问题有三种思路:

1、客户端浏览器解除跨域限制,但该思路由于浏览器存在安全检查机制而难以实现;

2、发送JSONP请求替代XHR请求,该方法只支持 GET 方法请求,不能适应所有的请求方式;

3、修改服务端,目前该方式是比较可行的方式。

我们拿EasyNVR来举例,解决跨域分别进行了服务端和客户端两个部分的处理:

服务端:主动写 token 到 cookie,配置同时允许跨域访问设置,并且携带cookie,注销登陆时,服务端主动将 token 从 cookie 清理。

客户端:不必显示保存 token 到 cookie,所有和 EasyNVR 的交互接口都需要添加跨域配置。

此外,我们也遇到过很多客户在使用EasyGBS时集成第三方系统时的跨域问题,不进行鉴权登录,则显示401错误,在EasyGBS的解决方法也同样在客户端上,所有和EasyGBS的交互接口需要添加跨域配置xhrFields: { withCredentials: true } 和 crossDomain: true。

EasyNVR、EasyGBS等平台通过Cookie会话都可能会遭遇恶意攻击或者访问,正因为如此,我们才对平台的跨域问题格外重视,经过多年的开发经验积累,EasyNVR、EasyGBS平台的安全性已经得到了多方项目的验证,如果大家还想了解更多关于EasyNVR相关的内容,欢迎自行下载EasyNVR试用版本进行测试。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档