大家在很多个人博客/笔记软件中都看到过内嵌的 bilibili / 优酷视频 / 西瓜视频 / 腾讯视频的播放器。
例如:
习惯追踪系统 - notion 模板分享
插入其他站点提供的组件,便是非常明显的跨域问题。
由于跨域加载很容易引起安全隐患,因此浏览器限制了 JavaScript 脚本的权限,即不能进行读、写非同源域名下的内容。
01 跨域问题
在浏览器中规定 URL 是由协议、域名、端口和路径组成,如果两个 URL 的协议、域名和端口相同,则表示他们同源。
在非同源的情况下,当前域名下加载的脚本是不允许访问非同源中的内容的。
以上这种情况,我们称之为跨域问题。
也就是说:虽然我们能够将 bilibili 的视频加载至当前文档中,但是却不能通过自定义脚本对播放器做任何修改。
但是,现如今的项目开发基本都是前后端分离的项目,这就导致了调用自己服务的接口也会涉及到跨域问题,要想解决这一问题,就需要使用 CORS 策略。
02 CORS 策略
浏览器支持在 API 容器中使用CORS,以降低跨域 HTTP 请求所带来的风险。
我们需要在 PHP 中对 CORS 进行设置,以允许跨域的请求。
... ...
想要了解更多PHP开发的安全问题可以关注我哟,或者加入下面的社群也是ok的,