TSINGSEE青犀视频平台EasyNVR为何需要跨域?为什么不能单纯的从前端来解决跨域问题?
在TSINGSEE青犀视频平台云边端架构产品运维过程中,我们有时会遇到关于跨域问题的咨询,比如EasyDSS_kernel在使用hls拉流提示跨域、EasyNVR二次开发不能Hbuilder跨域等问题。
因此有用户问我们,为什么EasyNVR在视频流传输上会出现跨域这个问题,那么我们就要明白不仅是在视频流的传输上存在该问题,也不是跨域本身是个难以解决的问题,而是浏览器故意这样设计的。那为什么浏览器需要跨域的限制?
简单说就是为了用户的安全,如果单纯的前端就能解决跨域问题,跨域限制就没有意义了,因为合法的开发者可以在前端设置跨域,而不合法的开发者也可以用同样的方法来模拟你的跨域。
举个例子:
用户A请求了一个跨域的api接口,而后端没有了任何跨域限制,开发者B在前端设置了跨域,通过接口拿到数据,这看起来没有任何问题,然后项目上线。而不法分子C自建一个网站,用同样的跨域设置也将能访问这个接口。当其他使用者访问并登录了用户A的网站,同时不法分子C把伪造的网站也发给其他使用者,使用者打开伪造的网站,那么该伪造网站也可以任意访问api服务器的接口,拿到本来需要授权才能获取的任何用户数据,或者通过这个接口就能任意修改用户数据。
当然这只是举了个例子,以上情景可能只有通过cookie进行会话才会出现,现在一般都是通过前端手动维护token或者sessionId维持会话,但这同样是一个极其严重的安全问题。
正因为这样,EasyNVR也进行了跨越的设置,需要方便集成、跳过跨域,就需要通过指定的前端调用方式来进行处理和解决。经过多年的开发经验积累,EasyNVR的安全性已经得到了多方项目的验证,如果大家还想了解更多关于EasyNVR相关的内容,欢迎联系我们咨询,也可自行下载EasyNVR试用版本进行测试。
EasyNVR视频平台播放界面: