![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
Пишу, значит систему... решил обойтись без шаблонизаторов, шаблоны делать на чистом PHP. И тут встала такая проблема: необходимо осуществлять подстановку некоторых шаблонов (в том числе и сгененрированных программно, в виде строки) в один общий. Проблему вроде как решил путем вставки строки в HTML шаблон <? eval($content) ?>, где в качестве $content будет подставляться скриптом все, что душе угодно, например 'include("main")';
Тут встал вопрос безопасности. Предположим, что исходники доступны всем и каждый кулхацкер знает, что шаблоны будут находиться в папке templates. Вопросы: 1. Есть ли опасность подстановки несанкционированного кода клиентом, скажем в ту же переменную $content, обращаясь к шаблону напрямую. 2. Как это можно предотвратить, поможет ли манипуляции с правами доступа на сервере. 3. Что я вобще делаю не так, и как правильно. Поглядывал на XSLT и SMARTY, не понравилось: первый в плане навороченности (с точки зрения дизайнеров), второй еще и по причине тормознутости. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А чем тебя не устраивает вариант шаблонизатора как в этом форуме?
ИМХО, это наиболее лучший вариант без всяких замутов Смарти и лишней нагрузки на сервер. |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
Если я не ошибаюсь, тут пассивные шаблоны. Чем они меня не устраивают:
1. Ребята из Invision и лучше выдумать не смогли, чем хранить шаблоны в базе (зачем в базе, понять не могу), но это решается. 2. Я не нашел способа создавать вложенные пассивные шаблоны, к примеру подключать к шаблону несколько других, из разных файлов, думаю поэтому форма ответа на форуме своя для полноценного ответа в тему, своя для быстрого ответа, своя для ответов в PM. Хоцца форму ответа держать в одном файле и подключать его к шаблонам в которых требуется (я не форум пишу 3. Пассивные шаблоны менее гибкие, чем актиные. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Стоп. Шаблоны в БД это только в 2 и то вроде кэша, а так - в файлах.
А тебе оно надо? Это ведь сильно тормозит скрипт. |
|||
|
||||
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
|
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А что в этом плохово? Наоборот. Просто передавай нужные переменные и все. |
|||
|
||||
| Irokez |
|
||||||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 22 Всего: 53 |
ну конечно есть, особенно если например сделать редактирование шаблонов через админку, или если есть возможность в админке загрузить свой шаблон или заменить другой шаблон...
думаю поставить права на редактирование только для админа сервака
прошу прощения если вдруг не по теме.. но вроде эта статья хорошо к теме подходит Это сообщение отредактировал(а) Irokez - 6.8.2005, 01:07 |
||||||
|
|||||||
| S.A.P. |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
спасибо, почитаю, правда мне кажется фактически копия главы "Код и шаблон страницы" того же самого аффтара из книги php 5, которую я зачитал до дыр Что мне именно не нравиться и той главы: Автор вроде правильно подходит к вопросу, говорит об актуальности отделения кода от дизайна, начинает от лобового вкрапления HTML кода в PHP программу, затем наоборот PHP кода в HTML, рассказывет о пассивных шаблонах, компонентном подхоже, путем небольших вставок на PHP и наконц выносит вердикт: лучший способ - компонентный подход + активные шаблоны не на PHP, это типа SMARTY и т.д. А если посмотреть издалека, то мы приходим туда, откуда начали, с большим, тяжелым, навороченным языком шаблонов на руках и полной неразберихой среди дизайнеров
Представим себе такую задачу: нужно сделать сайт, у него будет: шапка, меню, подвал и содержимое. Шапка, меню и подвал остаются неизменными, в шаблонах. Содержимое будет разное, в зависимости от запроса, к примру юзер запросил статью, дергается шаблон статьи из файла и комбинируется с основным шаблоном (с шапкой, меню и.т.д), тоже самое для новостей, каталогов и т.д. ПРичем некоторые шаблоны должны использоваться повторно, к примеру та же форма ответа будет юзаться и для гостевой книги и для комментариев к статьям. Кто подобными вещами занимался? Стоит ли писать шаблонизатор (и какой) или легче PHP обойтись? Добавлено @ 01:57
<? eval($content) ?> может ли пользователь хитрыми запросами подделать переменную $content, влепив туда вредный код? . И как этого избежать. Добавлено @ 02:00 вернее template.html, это вед шаблон будет, не предусмотренный для непостредственного запуска, т.е. $content должна быть определена, в скрипте, вызывающем этот шаблон. |
||||||||
|
|||||||||
| Irokez |
|
||||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 22 Всего: 53 |
смотря откуда будет браться $content, думаю что риск всегда будет тут наверное следует не сразу использовать eval, а например myeval - а она уже будет делать хоть какие то проверки (например регами..) перед тем как передавать в eval
я статью на работе читал и ухохатывался, прикольно пишет |
||||
|
|||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
Вобщем со статьей вроде тоже понятно
|
|||
|
||||
| Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 22 Всего: 53 |
|
|||
|
||||
| Bikutoru |
|
||||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Perchilla,
За полчаса управился А можно такой вопрос - чем пассивные шаблоны от активных отличаются? Это сообщение отредактировал(а) Bikutoru - 7.8.2005, 15:04 -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
||||
|
|||||
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
насколько я понимаю, в пассивных шаблонах нету всяких циклов и ветвлений, вся логика сосредоточена в отдельных PHP программах. |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |