gpt4 book ai didi

iframe - 当用户从覆盖 Chrome 中的 newtab 的 iframe 内单击链接时,"Referer" header 丢失

转载 作者:行者123 更新时间:2023-12-04 02:20:26 25 4
gpt4 key购买 nike

问题

这是浏览器的预期行为吗?

相关的 Chromium 错误

https://code.google.com/p/chromium/issues/detail?id=492761

脚步

  • 为 Chrome
  • 创建一个 empty extension
  • 将 newtab 覆盖放入 manifest.json : "chrome_url_overrides": {"newtab": "newtab.html"}
  • 创建 newtab.html ( chrome-extension://<extension_id>/newtab.html ),创建一个 iframe 并将一些页面加载到其中,例如https://<some_page>.com/
  • 放置一个指向该页面的链接,例如https://example.org/
  • 单击该链接并观察请求

  • 预期结果

    “Referer”标题应该存在,例如:
    GET / HTTP/1.1
    Host: example.org
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
    Referer: https://<some_page>.com/
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: en-US,en;q=0.8,de;q=0.6,ru;q=0.4
    Cookie: ...

    实际结果

    没有“Referer”标题:
    GET / HTTP/1.1
    Host: example.org
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: en-US,en;q=0.8,de;q=0.6,ru;q=0.4
    Cookie: ...

    最佳答案

    “chromium.org 上的 eroman” 将其确定下来(参见链接的 Chrome 错误报告,已经关闭)。

    问题是,当 iframe 包含安全 (https) 页面,但 iframe 本身包含在非安全页面中(在这种情况下替换 Chrome newtab),然后当用户单击时发出非安全 (http) 请求来自该 iframe 的链接。

    RFC 2616 section 15.1.3 步骤说:

    Clients SHOULD NOT include a Referer header field in a (non-secure)
    HTTP request if the referring page was transferred with a secure
    protocol.

    这使得所描述的案例成为理想的案例,因此浏览器的行为符合标准的预期。

    此外,如果链接指向非安全页面,例如 http://example.org/ ,这将是一个正常的(非安全)http 请求,所以“Referer”将被省略——仅仅因为引用页面是安全的。当然,即使没有 iframe 包装安全页面,这仍然有效。

    关于iframe - 当用户从覆盖 Chrome 中的 newtab 的 iframe 内单击链接时,"Referer" header 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491018/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com