Я развернул приложение 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. Как мы можем достичь этого?
Спасибо
Так как js
доступ к файлам осуществляется по ссылкам (браузерами, прозрачно для пользователя, при отображении страниц, содержащих эти ссылки), затем вы не можете скрыть их ссылки — они также будут доступны, если пользователь введет соответствующие ссылки прямо в браузере.
Что вы можете сделать, однако, это ограничить доступ к этим ссылкам только для авторизованных пользователей (остальные получат ошибки отказа в разрешении).
Если вы используете Google Пользовательский API тогда все, что вам нужно сделать, это настроить доступ в вашем app.yaml
файл (см. login
грести в Элемент обработчиков таблица), вот так:
- url: /js
static_dir: js
login: required
Если вы используете какой-либо другой метод аутентификации, то единственный вариант, о котором я могу подумать, это не публиковать js
реж как static_dir
(поскольку GAE предоставляет статические ресурсы кому угодно, даже не касаясь экземпляра / кода вашего приложения, например CDN). Вместо этого служите js
файлы через код вашего приложения, динамически — так же, как вы делаете с вашим api.php
код. Таким образом, вы можете реализовать любую политику доступа, которую вы хотите для каждого отдельного файла, на основе каждого запроса (например, путем проверки учетных данных пользователя для входа в систему / сеанса в соответствии с вашим методом аутентификации).
Других решений пока нет …