当前位置: 首页 > 知识库问答 >
问题:

AWS CloudFront签名Cookies CORS问题

华良才
2023-03-14

我在执行cloudfront签名的cookies时遇到以下错误

CORS 策略已阻止从源“https://b.xyz.com”在“https://a.xyz.com/test.html”处访问 XMLHttpRequest:请求的资源上不存在“访问控制-允许-源”标头。

我正在访问a.xyz上的文件。com(域1)从b.xyz。com(域2)。在限制云前端(域1)分发的查看器访问(使用签名cookie)之前,这一切都很好。

对于具有域1资产的存储桶,我的S3 CORS配置

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

我尝试在cloudfront行为设置中设置以下白名单标题

Access-Control-Request-Headers
Access-Control-Request-Method
Origin

但是我仍然得到上面的错误。

注意:如果我在新选项卡中打开文件 https://a.xyz.com/test.html,它工作正常,即成功创建了签名的cookie。

我怎么才能解决这个问题?

共有1个答案

颛孙嘉石
2023-03-14

对于要与cookie一起使用的CORS,您需要使用Access-Control-Alable-Credonals

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials

另外Access-Control-Allo-Origin不能是*,并且XHR需要使用with Crephaals触发

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

 类似资料:
  • 我正在云中的Ubuntu12.10服务器(AWS)上运行一个Apache CouchDB实例(1.3.0版)。我正在尝试让SSL在我的couchDB实例上工作。 基本的SSL设置非常简单。我已将我的证书和密钥放在一个目录中,并在我的本地应用程序中取消了以下行的注释。ini文件 我还确保这些文件的所有权是正确的。 这很好,couchDB服务器启动,您可以导航到https://mycouchdbser

  • 目前我有应用程序是在谷歌播放,我有keystore和密码。当我尝试构建我的应用程序使用我工作正常,得到了未签名的apk.但当我尝试签署的应用程序它显示给我一个错误,你能帮我解决这个问题吗? 检测到Android Studio项目 子项目路径:CordovaLib子项目路径:app publishNonDefault已弃用,不再有效。所有变体现在都已发布。项目中的配置“编译”:app已弃用。改用“实

  • 这里的第一个getMessage重载签名为什么与实现签名不兼容 我已经给值并且赋值初始值了

  • Pushes 签名 git push can be instructed to sign the push. The server may use this to control the execution of certain hooks: git push 可以被指示进行签名 push。服务器可以使用它来控制一些钩子的执行: ❯ git push --signed Github 现在貌似并没有

  • Merges 签名 git merge 命令可以在合并没有使用 --verify-signatures 命令带有不可信 GPG 签名的 commit/branch 时检查和拒绝 如果被合并的分支中有任何没有被有效签名认证的提交,合并将不会继续。 Merge commit 本身也是可以被签名的(使用 -S): ❯ git checkout -b enhancement/foo ❯ touch qux