2016-09-21 41 views
-1

我已经部署了一个PHP应用程序到谷歌应用程序引擎。在app.yaml文件看起来像如下:限制公众访问谷歌云应用程序中的文件

- url: /css 
    static_dir: css 

- url: /js 
    static_dir: js 

- url: /api 
    script: api.php 

- url:/
    static_files: index.html 
    upload: index.html 

截至目前,我能够访问使用url JS文件夹内的所有文件:project-name.appspot.com/js/custom.js。任何用户都不能通过在URL中输入路径来查看文件的内容。我想限制公众访问除index.html之外的任何文件。我们怎样才能做到这一点?

感谢

+0

那些'js'文件打算如何使用?嵌入在HTML文件中?通过链接引用? –

+0

嗨@DanCornilescu,js和css文件打算通过链接使用,如。 –

回答

0

由于js文件通过链接访问(通过浏览器,透明地为用户,呈现包含这些链接的页面时),那么你不能真正隐藏自己的联系 - 他们也将如果用户直接在浏览器中键入相应的链接,则可以访问。

然而,您可以做的是仅限授权用户访问这些链接(其他人将获得权限被拒绝的错误)。

如果你使用谷歌的Users API那么所有你需要做的就是在你app.yaml文件中配置接入(见Handlers elementlogin行),就像这样:

- url: /js 
    static_dir: js 
    login: required 

如果你使用的是其他身份验证方法,那么我能想到的唯一选择是未发布js目录为static_dir(因为静态资源直接由GAE提供给任何人,甚至不需要触摸您的应用程序实例/代码,如CDN)。动态地通过您的应用程序代码为js文件提供服务 - 就像您使用api.php代码一样。通过这种方式,您可以基于每个请求(例如,根据您的身份验证方法检查用户登录/会话凭据),为每个单个文件实施您所需的任何访问策略。

相关问题