aws s3静态网站在登录前隐藏内容

时间:2017-04-21 09:05:12

标签: javascript angularjs amazon-web-services amazon-s3 single-page-application

我想开发一个在亚马逊s3上托管的静态网站。我的文件结构类似于

/login.html
/login.js
/hiddenContent/fileA.html
/hiddenContent/fileA.js

网站本身是用Angular 1.x编写的,因此它是一个单页面应用程序。 我现在的问题是:登录应公开,每个人都可以访问此页面。但是/ hiddenContent文件夹中的所有内容只应对经过身份验证的用户可见。由于它的角度,所有内容和控制器必须在引导(加载)时知道。但是,熟悉Web技术的用户可以看到已加载的html和js(但未填充数据)。但必须避免这种情况。我该如何处理这个问题?登录后应加载html和控制器javascript。使用服务器不是问题,但s3没有任何服务器。

tl; dr:如何在登录后在SPA中加载html / javascript?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式在Amazon S3静态网站上强制执行安全性:

  • 预签名网址(但这需要应用程序对用户进行身份验证并生成预先签名的网址),或
  • 使用临时AWS凭证(可以通过AWS Secure Token服务生成,但您需要一个应用程序来创建凭据),或者
  • 使用永久AWS凭证(但您不应使用IAM授予对应用程序用户的访问权限)

底线:如果您没有逻辑层来检查安全性并生成访问凭据,那么您无法有选择地保护Amazon S3静态网站。