限制 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 凭据)。
我已经将 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 凭据)。