【问题标题】:How to identify cross-site requests?如何识别跨站请求?
【发布时间】:2022-01-12 22:51:58
【问题描述】:

我在读取服务器在响应标头 (Set-Cookie) 中发送/设置的 cookie 时遇到问题

想了解以下2个场景是否构成跨站

  1. UI 在 http://localhost:3000 上运行,设置 cookie 的服务器在其他本地主机 http://172.10.25.63:8089

  2. UI 正在 http://myui.app.dev.something.myhost.net 上运行,并且设置 cookie 的服务器位于其他主机 http://myservice.app.dev.something.myhost.net

以下2个场景有跨站请求吗?

【问题讨论】:

    标签: javascript ajax cookies setcookie


    【解决方案1】:

    对于 Ajax,这些都是跨域请求(需要客户端上的 useCredentials 标志和 CORS 的许可,包括服务器上的预检)。

    出于 Cookie 在两个 URL 上可用的目的,对于情况 (1),它们是不同的,对于情况 (2),因为它们共享一组公共域 (app.dev.somethings.myhost.net),如果 domain Set-Cookie 响应头中的参数设置正确。

    【讨论】:

    • 是的对...对于 (2) ,除了 http://{THIS_CHANGES}.app.dev.something.myhost.net 之外,一切都相同
    • 但是当你说在 Set-Cookie 响应标头中正确设置域参数时,是否要在服务器端显式完成?
    • 是的(除非 cookie 首先是使用客户端 JS 创建的)。
    • 在我们结束之前还有几个后续问题 - 1. 可以在 GET 请求的响应标头中设置 Set-Cookie 吗? 2. 由于这是我发出的 GET 请求,因此我没有设置 withCredentials。但我想通过 Set-Cookie 读取响应标头中通过服务器设置的 UI 上的 cookie
    • (1) 是的。 (2) 如果你想要一个带有凭据的 GET 请求,那么你需要在 GET 请求上设置withCredentials
    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2014-06-21
    • 2015-11-26
    • 1970-01-01
    相关资源
    最近更新 更多