前后端分离架构下的跨域问题

在前后端分离的架构下,难免会遇到跨域的问题。但是对于跨域,很多人不太了解。这里我就详细说说这个问题。

同源策略和跨域

所谓跨域,英文叫cross-domain,是网络安全领域的专有名词。一个简单的理解就是有些操作跨越了域名的界限,访问了其他域名。

如果脚本可以自由访问其他域,就会出现很多安全问题。

举个例子,假设有一个网银系统,你登录了,它支持一个ajax api来转账;有一个人气很高的论坛系统,但是里面有一个恶意脚本。这个脚本将调用这个ajax api将1000个块从当前登录的用户帐户转移到攻击者的帐户。这样一来,你访问这个论坛,就被转走了1000元,而且你毫无头绪!

另外,跨域请求有很多危害。这不是一本关于安全的书,我就不说了。如果想了解更多,可以买一本余弦写的《Web前端黑客技术秘笈》。

为了防止跨域攻击,所有现代浏览器都遵循一套同源策略。根据MDN上的定义,“如果两个页面有相同的协议、端口(如果指定)和主机,那么这两个页面属于同一个原点”。除了img src等少数嵌入操作外,违反同源策略的请求将被浏览器阻止。

这里需要注意的是,同源性不仅需要相同的域名或ip,还需要相同的协议和端口。比如blogs.com/mashch/articles/4261448.html.

/articles/3q2iaqb

前台后台分离,nodeJS转发请求实现跨域访问:/u 011783224/article/details/52214949。