2014-01-21 3 views
0

Я создаю приложение в AngularJS и Symfony2 с разрешением. Я не знаю, как отправлять html-шаблоны с сервера. Существует два метода:Какой способ предпочтительнее обслуживать партитуры AngularJS?

  1. Отправить html-шаблоны непосредственно из общедоступного каталога без рамки php. Это быстрее, и все приложения для внешнего интерфейса будут находиться в одном месте. Но все приложения могут быть загружены любым человеком без разрешения. Это опасно.
  2. Отправить html-шаблоны через Symfony. Таким образом, я буду контролировать загрузку шаблонов, но для каждого шаблона я должен создать свой собственный маршрут, и все частичные файлы будут отделены от других файлов приложений.

Какой метод вы используете для частичной обработки?

ответ

2

Доступ к ним напрямую будет типичным. Если это опасно, есть проблемы с вашими файлами. Там никогда не должно быть ничего, что требует авторизации в файле шаблона. Если кто-то обращается к ним напрямую, они должны просто видеть бесполезный html, а не какой-либо чувствительный контент!

Если у вас есть личная дата в этих файлах, удалите эти данные и получите это через защищенный api, чтобы ваши частичные файлы можно было безопасно получить напрямую.

+0

Из такого бесполезного html я могу знать о структуре данных, именах полей, бизнес-логике. Чем больше информации есть атакующий, тем легче взломать систему. –

+0

@DmitrySkryabin В html-файле не должно быть ничего, что бы раскрывалось в бизнес-логике. Если вы не верите мне, тогда, пожалуйста, предложите обстоятельства, когда это может произойти. Если бы это было проблемой, Angular js devs упомянул бы об этом. Защитите свою серверную логику и следуйте рекомендациям Angular: http://docs.angularjs.org/api/ng.$http#description_security-considerations – m59

+0

Пример: У меня есть шаблон html с заголовком «Клиент». Из этого я знаю все области клиентов и его формат, ссылку на каталог фотографий (или сценарий, который предоставляет фотографию). Этот шаблон также имеет кнопку «Создать заказ», а из шаблона «Новый заказ» я могу узнать о типах планировщика курьерских услуг, порядке закрытия заказов, структуре элементов каталога и т. Д. Вся эта информация в целом может быть проанализирована кем-то, чтобы определить узкое место. Может быть, я ошибаюсь, поэтому, пожалуйста, поправьте меня. Может быть, я просто параноик :) –

1

Оставляя обсуждение безопасности в стороне, я просто использую контроллер partials и даю ему имя файла html, который я хочу. Одиночный маршрут выглядит так:

cerad_ang_partials: 
    pattern: /partials/{partial} 
    defaults: 
     _controller: cerad_ang.partials.controller:getAction 

У меня тогда есть каталог ресурсов/partials для хранения партитур. Я не использую ветку для частичных файлов. Смешивание веточкой и угловыми обозначениями было слишком запутанным для меня.

+0

Я делаю то же самое в торнадо python. Используя (r "/ partials/(. * \. Html)", PartialHandler). В Partial handler используйте self.render ("path" + filename) – jdsantiagojr

+0

Почему вы хотите выполнить Symfony для простых партитур? –

+0

В большинстве случаев я этого не делаю. Но обратите внимание на часть вопроса, касающегося безопасности. Если по какой-то причине мне нужно ограничить доступ, то через Symfony будет больше смысла. – Cerad

Смежные вопросы