如何将凭据标志设置为 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 中使用通配符