通过异步跨源请求在S3上托管动态站点

dmv*_*man 5 amazon-s3 cross-domain cors

我意识到我可以在S3(html,js,css等)上托管一个完整的站点,并且在页面加载时通过异步通信到数据库(在我的EC2上)仍然是动态的.即使index.html文件在S3上,我也可以启用跨源请求以拥有"动态"站点.

我想知道人们是否已经这样做了,如果有任何安全警告我应该记住吗?

对我来说,这是一个极其可扩展(且便宜!)的服务器端架构.我的服务器永远不必发送一行HTML.它唯一的负载是发送和接收JSON的片段.如果我的服务器负载很重并且只是为S3提供服务​​,它还可以非常简单地切换"静态"标志.

bul*_*ley 2

S3 上的静态站点很容易,添加 CloudFront CDN 支持也轻而易举。

由于跨域资格是基于元组{域、协议、端口},因此跨域考虑因素确实会发挥作用。

但是,标准跨域解决方法仍然适用。

我用于通过 iFrame 或其他方式进行跨域通信的示例技术:

0) jsonp

1)访问控制允许来源

2)设置document.domain以允许通信

3)窗口.postMessage

对于在 S3 上托管静态资产,JSONP 非常有用,但当您的网站位于 S3 之外而不是资产时(而在这里,您的网站是 S3 并且您与其他服务器进行通信),JSONP 可能会发挥最大作用。

Access-Control-Allow-Origin 将为您提供所有现代浏览器,并允许您安全或不安全地跨域通话。IE提出并支持不同的(且更安全)标准,但预计在IE10中支持CORS。

这是我的观点,但如果您正在为现代浏览器编码,请选择 CORS 路线。