【问题标题】:Real use of same origin policy实际使用同源策略
【发布时间】:2017-11-18 16:58:15
【问题描述】:

我刚刚了解了 WebAPI 中的同源策略。启用 CORS 有助于调用存在于不同域中的 Web 服务。

我的理解是不启用 CORS 只会确保无法从浏览器调用 web 服务。但是如果我不能从浏览器调用它,我仍然可以使用不同的方式调用它,例如提琴手。

所以我想知道这个功能有什么用。你能放一些光吗?如果这是一个微不足道或愚蠢的问题,我们深表歉意。

感谢和问候, 阿比吉特

【问题讨论】:

    标签: same-origin-policy


    【解决方案1】:

    这根本不是一个愚蠢的问题,当您处理不同来源的 Web 服务时,这是一个非常重要的方面。

    要了解什么是 CORS(跨域资源共享),我们必须从所谓的同源策略开始,它是一个网络安全概念。听起来很复杂,但仅确保 Web 浏览器允许包含在网页中的脚本访问另一个网页上的数据,但前提是两个网页具有相同的来源。换句话说,数据请求必须来自相同的方案、主机名和端口。如果http://player.example 尝试向http://content.example 请求数据,通常会失败。

    再看一遍后,很明显这可以防止未经授权的数据泄露到第三方服务器。如果没有此策略,脚本可以读取、使用和转发托管在任何网页上的数据。这种跨域活动可能被用来利用 cookie 和身份验证数据。因此,这种安全机制是肯定需要的。

    如果您想将内容存储在与播放器请求不同的来源,有一种解决方案 - CORS。在 XMLHttpRequests 的上下文中,它定义了一组标头,允许浏览器和服务器通信允许/禁止哪些请求。它是 W3C 的推荐标准。实际上,对于 CORS 请求,服务器只需要在其响应中添加以下标头:

    Access-Control-Allow-Origin: *
    

    有关设置(例如 GET/POST、自定义标头、身份验证等)和示例的更多信息,请参阅http://enable-cors.org

    如需详细阅读,请使用https://developer.mozilla.org/en/docs/Web/HTTP/Access_control_CORS

    【讨论】:

    • 非常感谢您的快速回复和详细解释。
    猜你喜欢
    • 2011-01-17
    • 2012-10-30
    • 2011-12-26
    • 2013-11-09
    • 2012-03-21
    • 2013-06-09
    • 2014-02-03
    • 2011-01-28
    相关资源
    最近更新 更多