2016-09-21 8 views
-1

Я развернул приложение php в Google App Engine. Файл app.yaml выглядит, как показано ниже:Ограничить публичный доступ к файлам в приложении Google Cloud php

- 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. Как мы можем достичь этого?

Благодаря

+0

Как эти файлы 'js' предназначены для использования? Выпущено внутри HTML-файлов? Ссылка по ссылкам? –

+0

Привет @DanCornilescu, файлы js и css предназначены для использования через такие ссылки, как . –

ответ

0

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

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

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

- url: /js 
    static_dir: js 
    login: required 

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