限制 public 访问 google 云 php 应用程序中的文件

Restrict public access to files in google cloud php application

我已经将 php 应用程序部署到 google 应用引擎。 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 中键入路径来查看文件内容。我想限制 public 访问除 index.html 之外的任何文件。我们怎样才能做到这一点?

谢谢

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

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

如果您使用 Google 的 Users API then all you have to do is configure access in your app.yaml file (see login row in the Handlers element table),像这样:

- url: /js
  static_dir: js
  login: required

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