Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как запустить функцию в шаблоне? [2]
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
android пишет:
Если все разрешенные функции проверять на правильность то нет В этом случае риск минимален
мы видимо не совсем друг друга понимаем. Если шаблоны от сторонних разработчиков не проверять то они могут делать что угодно, и функции тут не причём. они могут вывести а страницу не то что нужно или же наоборот просто угробить весь шаблон. А как насчёт xss? Плохому человеку не нужен доступ к php, он просто наишет в шаблоне js и будет воровать куки.
android пишет:
да и если человек накосячит отображаться это будет только на его сайте
То есть если с php кодом накосячить то сломается весь интернет?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
android
Отправлено: 25 Сентября, 2014 - 12:55:32
Посетитель
Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
OrmaJever господи!!!
Объясню еще раз, слушайте внимательно:
Есть система управления сайтами, в ней может сделать себе сайт любой желающий, он создает сайт, прикрепляет домен. От нас панель управления сайтом и его размещение (в автоматическом порядке) в ПУ запрещено любое наличие php кода. Если владелец сайта внедрит себе xss, сломает дизайн - это его право.
Надеюсь теперь я расставил все по своим местам
OrmaJever
Отправлено: 25 Сентября, 2014 - 13:25:53
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
ааа вот теперь ясно, типа ucoz.ru. Ну в таком случае нужно много парсить и проверять всё до последнего. Но тут опять же вопрос, зачем эти функции нужно без основного функционала? Если доступа к бд и серверным ресурсам нету, то зачем может пригодиться substr? Статический текст резать? По-моему разработчикам шаблонов проще уже js использовать. (Добавление)
Напишите примерный список функций, а я вам скажу если ли смысл это делать.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
DelphinPRO
Отправлено: 25 Сентября, 2014 - 15:02:25
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
вы шаблоны через интерпретатор php пропускаете что ли? Или все же делаете что-то вроде
Во втором случае - пофиг, если в шаблоне будет функция, она просто будет выведена как текст.
Поэтому и спрашивал, как у вас там устроен шаблонизатор. (Добавление)
Добавлю.
Посмотрите smarty. Если в его шаблонах просто вызвать php-функцию - это будет просто текст, а чтобы она сработала, нужно обернуть вызов в {php}{/php} (или как-то так, не помню)
сделайте свой синтаксис для вызова функций, и при парсинге проверяйте, допустима ли функция. я об этом писал ранее.
----- Чем больше узнаю, тем больше я не знаю.
android
Отправлено: 25 Сентября, 2014 - 15:48:32
Посетитель
Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
OrmaJever обрезание текста это так, пример в основном. Будут использоваться собственные функции
Лучше если можете поясните про кэширование, на каком этапе нужно кэшировать и что куда выводить? (Добавление) DelphinPRO и если знаете то подскажите как регулярку сделать так что бы пропускало только такие комбинации:
Просто немного не понятно как сделаны условные операторы в ucoz, там вроде стандартный if else endif но пропускает только свои переменные и пару проверок по типу как я выше написал
Что вы думаете об этом?
Мне кажется нужно брать содержимое
и проверять это по шаблону как то... но такой вариант будет нести в себе большой массив с проверочными регулярками
Может есть какой-то способ запретить использование функций внутри условного оператора?
OrmaJever
Отправлено: 25 Сентября, 2014 - 17:07:17
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Короче говоря это не шаблонизатор получается, а грубо говоря нужно писать свой парсер и компилятор шаблонов.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
RickMan
Отправлено: 25 Сентября, 2014 - 17:11:59
Участник
Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012
Помог: 30 раз(а)
А если использовать существующие? Например twig...
android
Отправлено: 25 Сентября, 2014 - 17:33:45
Посетитель
Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
OrmaJever да скорее всего RickMan масса ненужных вещей
tato
Отправлено: 26 Сентября, 2014 - 01:18:03
Посетитель
Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011 Откуда: Владивосток
Помог: 8 раз(а)
android пишет:
RickMan масса ненужных вещей
Tак говорят либо senior'ы либо junior'ы, по Вашим коментариям видно, что вы не senior.
Twig и так маленький, приведите пример, что в нем лишнего?
----- просто ?: сложно
android
Отправлено: 26 Сентября, 2014 - 23:11:23
Посетитель
Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
Tato, если бы вы прочитали от начала до конца тему, то увидели бы что мне от шаблонизатора нужно только : переменные в шаблоне, условные операторы if else endif
А вот блоки, инклюбы, запуск кода пхп и од мне совершенно не нужно!
android
Отправлено: 27 Сентября, 2014 - 12:41:52
Посетитель
Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.