我尝试将 Auth0 添加到我的应用程序中,该应用程序在本地运行,但当我部署到 S3 存储桶时,出现以下错误:
“拒绝连接到'https://dev-.us.auth0.com/oauth/token',因为它违反了以下内容安全策略指令:“default-src 'self'”。请注意,'connect-src'未明确设置,因此使用“default-src”作为后备。”
为了解决该问题,我尝试按照“使用内联脚本或样式”标题下的这篇文章中的说明进行操作,但是即使我可以看到正在对相关元标记进行更改(请参见下文,摘自浏览器)我仍然遇到同样的错误。
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'; object-src 'none'; script-src 'unsafe-inline' 'self' 'unsafe-eval' 'nonce-<hash>=='; style-src 'unsafe-inline' 'self' 'nonce-<hash>=='; connect-src 'self' https://dev-<hash>.us.auth0.com/">
我不明白的是,它看起来完全忽略了元标记,因为我可以看到
connect-src
正在浏览器使用的 html 中设置,但随后在控制台中它抛出此错误,声称它尚未被设置。这里可能出了什么问题?
我尝试将内容安全标头添加到创建反应应用程序中,并且我希望使用该标头。但是,标头被忽略。
听起来您遇到了这样的问题:当您的应用程序部署到 AWS S3 存储桶时,您在 HTML 元标记中设置的内容安全策略 (CSP) 未得到遵守。导致此问题的可能原因有多种,我将指导您完成一些步骤来排除故障并希望能够解决它:
Content-Security-Policy
标头来完成。如果您在 S3 之前使用 CloudFront,则可以使用 Lambda@Edge 或 CloudFront 函数修改 HTTP 标头以包含 CSP 标头。connect-src
指令中的域与应用程序尝试连接的域完全匹配,包括检查<hash>
等任何占位符,应将其替换为实际值。通过执行这些步骤,您应该能够查明并解决当您的应用程序部署到 S3 时不遵守 CSP 的问题。