同源: 如果两个URL的协议、域名和端口都相同,我们就称这两个URL为同源。
同源问题所带来的几个限制
1.同源策略限制了来自不同源的JavaScript脚本对当前DOM对象的读和写的操作。
2.同源策略限制了不同源站点读取当前站点的Cookie、IndexDB、LocalStorage等(本地)数据。
3.同源策略限制了通过XMLHttpRequest等方式将站点的数据发送给不同源的站点。
解决方式
1.跨文档消息传输:通过postMessage消息队列机制和JavaScript接口和不同源的DOM进行通信。
2.跨域资源共享(CORS):跨域资源在服务端设置允许跨域,就可以进行跨域访问控制,从而使得跨域数据得以安全传输。
3.内容安全策略(CSP):主要以白名单方式配置可信任内容来源,可在前端配置(meta标签>http-equiv&content属性);在网页中,能够使白名单中的内容正常执行(包含JS、CSS、Image等),而非白名单的内容无法执行(这也是XSS的解决方案之一)。