我已经将一个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之外的任何文件的公共访问。我们怎样才能做到这一点?
由于
答案 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
代码一样。这样,您可以基于每个请求为每个单独的文件实现所需的任何访问策略(例如,根据您的身份验证方法检查用户登录/会话凭据)。