Ограничить публичный доступ к файлам в приложении Google Cloud PHP

Я развернул приложение php в Google App Engine. Файл 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

На данный момент я могу получить доступ к любому файлу в папке js, используя url: project-name.appspot.com/js/custom.js. Любой пользователь не должен иметь возможность просматривать содержимое файла, просто введя путь в URL. Я хочу ограничить публичный доступ к любому из файлов, кроме index.html. Как мы можем достичь этого?

Спасибо

-1

Решение

Так как js доступ к файлам осуществляется по ссылкам (браузерами, прозрачно для пользователя, при отображении страниц, содержащих эти ссылки), затем вы не можете скрыть их ссылки — они также будут доступны, если пользователь введет соответствующие ссылки прямо в браузере.

Что вы можете сделать, однако, это ограничить доступ к этим ссылкам только для авторизованных пользователей (остальные получат ошибки отказа в разрешении).

Если вы используете Google Пользовательский API тогда все, что вам нужно сделать, это настроить доступ в вашем app.yaml файл (см. login грести в Элемент обработчиков таблица), вот так:

- url: /js
static_dir: js
login: required

Если вы используете какой-либо другой метод аутентификации, то единственный вариант, о котором я могу подумать, это не публиковать js реж как static_dir (поскольку GAE предоставляет статические ресурсы кому угодно, даже не касаясь экземпляра / кода вашего приложения, например CDN). Вместо этого служите js файлы через код вашего приложения, динамически — так же, как вы делаете с вашим api.php код. Таким образом, вы можете реализовать любую политику доступа, которую вы хотите для каждого отдельного файла, на основе каждого запроса (например, путем проверки учетных данных пользователя для входа в систему / сеанса в соответствии с вашим методом аутентификации).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]