限制公共访问google cloud php应用程序中的文件

时间:2016-09-21 13:13:16

标签: php google-app-engine gcloud app.yaml

我已经将一个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:project-name.appspot.com/js/custom.js访问js文件夹中的任何文件。任何用户都不能通过在URL中键入路径来查看文件的内容。我想限制除index.html之外的任何文件的公共访问。我们怎样才能做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

由于js文件是通过链接访问的(通过浏览器,透明地为用户提供,在呈现包含这些链接的页面时),然后您无法真正隐藏其链接 - 如果用户直接在浏览器中键入相应的链接,也可以访问它们。

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

如果您使用的是Google Users API,那么您所要做的就是在app.yaml文件中配置访问权限(请参阅Handlers element表中的login行),例如这样:

- url: /js
  static_dir: js
  login: required

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