跨域为什么是默认不允许的?

后端默认不允许跨域,请问为什么?有什么安全问题?

阅读 2.1k
1 个回答

为什么的原因就是你的第二个问题:会有安全问题。

主要可以分为两大类。

一是是请求跨域(如 Form 表单提交或 AJAX)。比如用户已经登录了 bank.com,那么当它访问呢某个钓鱼网站时,钓鱼网站可以直接向 bank.com 发起请求,那么这些请求能造成多大的破坏性就完全取决于 bank.com 后端的安全策略了。

二是 DOM 跨域(如 iframe 嵌套),钓鱼网站可以把 bank.com 的合法页面内嵌到自己的网站中,那么当用户在页面中完成输入等操作时,钓鱼网站可以通过 JS 等方式取得控制权。

当然了,上述问题即便浏览器不禁止跨域,通过其他手段也可以做到安全。但又有多少网站能保证自己是安全可靠的呢?浏览器的跨域策略提供了一个简单的、无需额外开发的安全功能,不是吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进