【问题标题】:Why have Origin and Referer headers when Referer has enough information?当Referer有足够的信息时,为什么会有Origin和Referer头?
【发布时间】:2020-11-29 03:13:23
【问题描述】:

如果Referer标头中无论如何都包含Origin,那么两者都有什么意义?

如果接收到HTTP请求的服务器想知道Origin,它可以直接查看Referer头中的域。

我知道,如果是 HTTPS 到 HTTP 请求(以及许多其他场景),则不会发送 Referer 标头,但是他们为什么不设计它,所以不是删除它,而是仍然发送,但它只有域名(Origin 标头会有什么)?

【问题讨论】:

  • 不发送引荐来源网址的情况更多 - developer.mozilla.org/en-US/docs/Web/HTTP/Headers/… - 并且更改 现有标头的行为比添加标头风险更大新的。
  • 我不是在问他们为什么不改变它,我是在问“他们为什么不设计它……”以这样的方式开始。
  • referrer 标头早在跨域 JavaScript 调用出现之前就已经发明了。与马没有设计安全气囊的原因相同。

标签: http http-referer


【解决方案1】:

从这里引用https://security.stackexchange.com/questions/158045/is-checking-the-referer-and-origin-headers-enough-to-prevent-csrf-provided-that

为了保护隐私,任何浏览器请求都可以决定省略 引用头。所以最好只检查 Origin 标题。 (如果您想允许用户保留他们的 隐私)

在某些情况下,Origin 标头为空。请注意,所有这些 请求是 GET 请求,这意味着它们不应该有任何一方 效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-22
    • 2022-07-27
    • 2018-09-28
    • 2013-10-21
    • 2012-06-20
    • 2018-01-02
    • 2016-07-04
    相关资源
    最近更新 更多