-1

我有一个测验,我已上传到 Amazon S3 存储桶,并为该存储桶创建了一个云端分发,并使用 WAF 使用标头方法限制了对内容的访问,这样没有人可以热链接该存储桶中的我的东西。

一切正常,直到我决定将测验添加到我的网站(托管在 Weebly)。所以我创建了一个非常好用的测验。将其上传到我的 Amazon s3 存储桶,即启用了 WAF 的云端分发。我使用 iframe 将测验嵌入我的网站。现在测验确实出现了,但 WAF 阻止了某些资源的加载。我认为 cloudfront 或 Amazon s3 存储桶有问题。

因此,我创建了另一个云端发行版并将其链接到另一个 amazon s3 bukcet 并将相同的测验上传到它并使用 iframe 将其嵌入到我的网站中,它工作得非常好。

所以我得出了这个结论,即 WAF 导致它无法完全加载。

我在下一页上嵌入了两个测验,一个带有 WAF,另一个没有 WAF

easyenglish.pk/hotlinking

第一个嵌入式测验没有 WAF,它工作得很好。第二个测验是使用 WAF,它不会加载所有资源并继续加载。

如果有人可以帮助我,我将不胜感激。我尝试了自由职业者,但那里的人不知道如何解决这个问题。

4

1 回答 1

0

乍一看,您的问题是对 player.js 的引用被阻止(403)。 https://d1au5fut5rqs5s.cloudfront.net/quiz/data/player.js?A1AFCE49

但是,当我尝试从您的云端分发中访问任何内容时,所有内容都返回 403。 https://d1au5fut5rqs5s.cloudfront.net

您是否仔细检查过您的云端分发是否正常工作?

尝试从您的云端分发中删除 WAF (Web ACL),然后重试。如果您仍然收到 403 错误,则问题在于您如何配置 CloudFront 分配。

对于您的 Web ACL,确保规则页面底部的“默认条件”设置为“允许所有不匹配任何规则的请求”。我经常看到阻止一切的相反设置。

1) 在您的控制台中转到 AWS WAF。2) 选择 Web ACL 3) 选择您的 Web ACL 4) 在此规则列表之后靠近底部的右侧面板中,查找“默认操作”。确保它显示“允许所有不符合任何规则的请求”

问题:1)有效的存储桶的名称是什么?2)不起作用的存储桶的名称是什么?3) 这些存储桶是为静态网站托管设置的吗?

仔细检查 S3 存储桶配置。比较两个存储桶之间的存储桶策略和 CORS 配置。也许您有存储桶配置问题。

于 2017-09-16T08:48:51.837 回答