当前位置: 首页 > 知识库问答 >
问题:

同源政策与跨源资源共享

段阳夏
2023-03-14

来自维基百科:

要发起跨源请求,浏览器发送带有源HTTP标头的请求。这个标题的值是为页面服务的站点。例如,假设http://www.example-social-network.com上的一个页面试图访问online-personal-calendar.com中的用户数据。如果用户的浏览器实现了CORS,则将发送以下请求头:

来源:http://www.example-social-network.com

我在这里漏掉了什么?CORS保护服务器和保护客户端的意图是什么。

共有1个答案

陈瀚玥
2023-03-14

同源策略(SOP)是浏览器通过跨站点脚本(XSS)来防止漏洞的策略。这主要是为了保护服务器,因为在许多情况下,服务器可以处理身份验证、cookie、会话等。

跨源资源共享(CORS)是缓解SOP的少数技术之一。因为默认情况下SOP是“ON”,所以在服务器端设置CORS将允许通过XMLHttpRequest向服务器发送请求,即使请求是从不同的域发送的。如果您的服务器打算服务来自其他域的请求(例如,如果您提供API),这将变得非常有用。

我希望这能澄清SOP和CORS之间的区别以及各自的目的。

 类似资料:
  • 通过XHR 实现Ajax 通信的一个主要限制,来源于跨域安全策略。默认情况下,XHR 对象只能访问与包含它的页面位于同一个域中的资源。这种安全策略可以预防某些恶意行为。但是,实现合理的跨域请求对开发某些浏览器应用程序也是至关重要的。 CORS(Cross-Origin Resource Sharing,跨源资源共享)是W3C 的一个工作草案,定义了在必须访问跨源资源时,浏览器与服务器应该如何沟通。

  • 我试图使CORS与Spring Security很好地配合,但它并不符合要求。我进行了本文所述的更改,更改中的这一行使我的应用程序可以使用POST和GET请求(临时公开控制器方法,以便测试CORS): 前面: 后面: 不幸的是,允许通过AJAX进行Spring Security登录的以下URL没有响应:。我正在将AJAX请求从发送到。 当尝试访问时,我在Chrome中获得了选项预飞行请求,AJAX

  • 问题内容: 对于以下ajax发布请求Flask(如何使用烧瓶中ajax发布的数据?): 我收到一个错误: 我尝试通过以下两种方法解决该问题,但似乎没有任何效果。 1.使用Flask-CORS 这是用于处理的扩展,应使跨域AJAX成为可能。 我的pythonServer.py使用此解决方案: 2.使用特定的Flask装饰器 这是Flask 官方代码片段,定义了一个装饰器,该装饰器应允许CORS其装饰

  • 问题内容: 对于以下发布请求如何使用烧瓶中从ajax发布的数据?: 我收到一个错误: 我尝试通过以下两种方式解决该问题,但似乎无济于事。 使用Flask-CORS 这是用于处理的扩展,应使跨域AJAX成为可能。 我的 pythonServer.py 使用此解决方案: 使用特定的Flask装饰器 这是Flask 官方 代码片段,定义了一个装饰器,该装饰器应允许其装饰功能。 http://flask.

  • 对于以下post请求(如何在flask中使用从ajax发布的数据?): 我得到一个错误: null http://flask-cors.readthedocs.org/en/latest/ 如何在烧瓶和Heroku中启用CORS 应用jwt auth包装器时Flask-cors包装器不工作。 JavaScript-请求的资源上没有'access-control-allog-origin'标头 我的

  • 这是否意味着浏览器拒绝用户向谷歌服务器发送请求,或者谷歌服务器拒绝响应用户的任何反馈?CORS限制将JavaScript限制为获取数据,所以我有点困惑。