我意识到我可以在S3(html,js,css等)上托管整个站点,并且在页面加载时通过异步通信到数据库(在我的EC2上)仍然是动态的。即使index.html文件在S3上,我也可以启用跨源请求以拥有“动态”站点。
我想知道人们是否已经这样做了,如果有任何安全警告我应该记住吗?
对我来说,这是一个极其可扩展(且便宜!)的服务器端架构。我的服务器永远不必发送一行HTML。它唯一的负载是发送和接收JSON的片段。如果我的服务器负载很重并且只是为S3提供服务,它还可以非常简单地切换“静态”标志。
答案 0 :(得分:1)
S3上的静态站点很容易,添加CloudFront CDN支持是轻而易举的。
因为跨域资格基于元组{domain,protocol,port}所以跨域考虑确实起作用。
但是,标准的跨域解决方法仍然适用。
我用于通过iFrame或其他方式进行跨域通信的示例技术:
0)jsonp
1)Access-Control-Allow-Origin:
2)设置document.domain以允许通信
对于在S3上托管静态资产,JSONP很棒,但是当它是你的网站关闭S3而不是资产时可能会发挥作用(而在这里,你的网站是S3并且你正在与其他服务器通信)。
Access-Control-Allow-Origin将为您提供所有现代浏览器,并允许您跨域安全地或不安全地说话。 IE提出并支持不同(且更安全)的标准,但预计将在IE10中支持CORS。
这是我的意见,但如果您正在为现代浏览器编码,请转到CORS路线。