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

2024-04-24 03:32

本文主要是介绍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试用版本进行测试。

NVR1.png

这篇关于TSINGSEE青犀视频流媒体平台为什么会存在跨域问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930648

相关文章

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Mysql如何解决死锁问题

《Mysql如何解决死锁问题》:本文主要介绍Mysql如何解决死锁问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录【一】mysql中锁分类和加锁情况【1】按锁的粒度分类全局锁表级锁行级锁【2】按锁的模式分类【二】加锁方式的影响因素【三】Mysql的死锁情况【1