HTTP Headers 之 Origin

概念

HTTP 协议中的 Origin Header 存在于请求中用于指明当前请求来自于哪个站点

字段内容

Origin 仅仅包含站点信息,不包含任何路径信息。

语法

Origin: ""
Origin: "<schema>://<host>[:port]"
// 例如
Origin: "https://baidu.com"
// 错误示范,包含了路径信息
Origin: "https://baidu.com/"

参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Origin

应用

CORS

当我们的浏览器发出跨站请求时,行为正确的服务器会校验当前请求是不是来自被允许的站点。服务器就是通过 Origin 字段的值来进行的判断。

当服务器的配置出错时,比如配置成了 https://baidu.com/,则可能造成一些难以理解的问题。

比如有的浏览器(IE)能够请求成功,而有的浏览器却请求失败(Chrome)。这不是因为前一个浏览器行为正确,而是因为前一个浏览器发出请求时没有带上 Origin 而后一个浏览器带上了正确的 Origin。而在服务器端,因为没有 Origin Header,所以认为这不是一次 CORS 请求,所以没有进行 CORS 校验。这也反过来要求服务端强制请求带上 Origin Header,才能进一步保证服务器的安全性。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.浏览器的同源安全策略 浏览器只允许请求当前域的资源,而对其他域的资源表示不信任。 那怎么才算跨域呢? 请求协议...
    赵客缦胡缨v吴钩霜雪明阅读 2,063评论 1 10
  • 引用自HTTP访问控制(CORS) 当 Web 资源请求由其它域名或端口提供的资源时,会发起跨域 HTTP 请求(...
    有涯逐无涯阅读 2,622评论 0 4
  • http://www.91ri.org/tag/fuzz-bug 通常情况下,有三种方法被广泛用来防御CSRF攻击...
    jdyzm阅读 4,254评论 0 5
  • 跨域资源共享 CORS 对于web开发来讲,由于浏览器的同源策略,我们需要经常使用一些hack的方法去跨域获取资源...
    默默先生Alec阅读 618评论 0 0
  • 今晚又是不愉快的一晚,啊不知不觉用了“又”字。我也会累,不想因为你影响我心情左右。其实,你知不知道你这样很幼稚.....
    杨国邦xx阅读 211评论 0 0