前言
在前后端不分离时,我们利用前面讲过的Spring Security的各种知识点,就可以实现对项目的权限管控。但是在前后端分离时,尤其是在引入了Spring Security后的前后端分离时,我们从前端发来的请求,就会存在一些问题。这些问题就是跨域而导致的问题!
对于前后端分离时,跨域而产生的安全问题,我们该怎么解决呢?接下来请跟着 一一哥 来学习如何解决吧!
在解决跨域问题之前,我们先来了解一下何为跨域问题,怎么产生的跨域问题,怎么解决这个跨域问题。
一. 跨域问题的由来
1. 同源策略
跨域问题的产生,源自浏览器的一个同源策略。
大家可以加老师vx领取最新资料哦
1.1 同源策略的概念
同源策略是由 Netscape 提出的一个著名的安全策略,它是浏览器最核心也是最基本的安全功能,所有支持 JavaScript 的浏览器都会使用这个策略。在同源策略中,要求 域名、协议、端口 3部分都要相同。
举例来说,http://www.yiyige.com:80/dir/syc. html这个网址,http是协议,www.yiyige.com是域名,80是端口号(80端口号默认可以省略)。同源策略具体规则如下表:
如果浏览器中没有对JavaScript进行同源限制,则有可能会利用浏览器的漏洞,出现以下针对服务器的攻击方式。
-
CSRF攻击
-
XSS攻击
-
跨域问题
1.2 同源策略的作用
通过上一小节可知,同源策略的出现就是为了防止针对服务器的攻击,比如为了防止恶意网站通过冒充用户信息来窃取用户的敏感数据信息等,所以同源策略可以限制以下行为:
-
限制读取Cookie、LocalStorage 和 IndexDB等信息;
-
限制获取 DOM 和 JS 对象;
-
限制发送Ajax请求。
-
即这个同源策略提高了攻击成本,保证了服务器的安全。
2. 跨域问题
2.1 跨域的作用
在上面的小节中,我给大家说到,浏览器出于安全方面的考虑,做了一个同源策略