如何将凭据标志设置为 false?

Posted

技术标签:

【中文标题】如何将凭据标志设置为 false?【英文标题】:How do I set the credentials flag to false? 【发布时间】:2015-03-13 03:24:28 【问题描述】:

似乎是一个如此简单的问题,但我找不到答案,所以让我相信也许我无法控制旗帜!?

上下文:

我正在开发 SignalR 集线器和客户端。如果(在信号器站点上)我在配置中设置以下内容,一切都会很好:

<system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="http://example.com" />
     </customHeaders>
   </httpProtocol>
 </system.webServer>

问题是我想在这里使用通配符。

当我这样做时(即value="*"),我收到以下错误(在客户端上):

A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true.

我很可能在这里遗漏了一些简单的东西,但我找不到允许我设置凭据标志的相关配置条目。

我的尝试

<add name="Access-Control-Allow-Credentials" value="false"/>

似乎没有什么不同(同样的错误)。

【问题讨论】:

【参考方案1】:

我相信您的客户正在提交凭据。 CORS 不允许将凭据包含在通配符匹配设置中。

这个question 很好地概括了它。

编辑:

This 是回答类似问题并链接到我引用的问题的更好答案。此外,这将是一个good place to read

【讨论】:

非常感谢您的回复,这有点碍事,非常感谢您的帮助。那么,问题在于客户端提交凭据。我需要向任何人开放跨域请求(这是一个最终将位于移动应用程序中的站点,因此我无法确定域)。知道如何/如何阻止客户端提交凭据吗?这个问题似乎更关心整理 access-control-allow-credentials 标头。 那么您需要对您的服务器进行身份验证吗?因为它是您作为客户端预检并说“我来自这个域,并使用这些凭据”的协商,然后服务器说好的等待我的 CORS 允许的通配符不合适。 您也可以使用JSONP,但我不知道与 SignalR 集成会有多好 浏览器自动添加。为了防止 XSS,它是 HTTP / 浏览器规范的一部分 啊,对了,如果浏览器自动添加它(作为我假设的请求的一部分传递),那么我知道这与你说它很容易伪造有什么关系。我想我现在的方法应该是将我可以控制的域(即所有网页)列入白名单,以及我将单独解决的“应用程序”问题。在这种情况下,你已经回答了我的问题。再次,非常感谢队友。

以上是关于如何将凭据标志设置为 false?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 11 UITableView isEditing 标志未正确设置

CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符

CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符

CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符

如何将值从页面传递到 Blazor 中的布局?

如何在erl中为单个标志设置多个命令行参数