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]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
OrmaJever Модератор
Отправлено: 25 Сентября, 2014 - 12:02:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




android пишет:
Если все разрешенные функции проверять на правильность то нет В этом случае риск минимален

мы видимо не совсем друг друга понимаем. Если шаблоны от сторонних разработчиков не проверять то они могут делать что угодно, и функции тут не причём. они могут вывести а страницу не то что нужно или же наоборот просто угробить весь шаблон. А как насчёт xss? Плохому человеку не нужен доступ к php, он просто наишет в шаблоне js и будет воровать куки.
android пишет:
да и если человек накосячит отображаться это будет только на его сайте

То есть если с php кодом накосячить то сломается весь интернет?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
android
Отправлено: 25 Сентября, 2014 - 12:55:32
Post Id


Посетитель


Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




OrmaJever господи!!!
Объясню еще раз, слушайте внимательно:

Есть система управления сайтами, в ней может сделать себе сайт любой желающий, он создает сайт, прикрепляет домен. От нас панель управления сайтом и его размещение (в автоматическом порядке) в ПУ запрещено любое наличие php кода. Если владелец сайта внедрит себе xss, сломает дизайн - это его право.

Надеюсь теперь я расставил все по своим местам Улыбка
 
 Top
OrmaJever Модератор
Отправлено: 25 Сентября, 2014 - 13:25:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




ааа вот теперь ясно, типа ucoz.ru. Ну в таком случае нужно много парсить и проверять всё до последнего. Но тут опять же вопрос, зачем эти функции нужно без основного функционала? Если доступа к бд и серверным ресурсам нету, то зачем может пригодиться substr? Статический текст резать? По-моему разработчикам шаблонов проще уже js использовать.
(Добавление)
Напишите примерный список функций, а я вам скажу если ли смысл это делать.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 25 Сентября, 2014 - 15:02:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




вы шаблоны через интерпретатор php пропускаете что ли? Или все же делаете что-то вроде
PHP:
скопировать код в буфер обмена
  1. $html = str_replace('{title}', 'Заголовок', $html);
  2. ...
  3. echo $html;

Во втором случае - пофиг, если в шаблоне будет функция, она просто будет выведена как текст.

Поэтому и спрашивал, как у вас там устроен шаблонизатор.
(Добавление)
Добавлю.
Посмотрите smarty. Если в его шаблонах просто вызвать php-функцию - это будет просто текст, а чтобы она сработала, нужно обернуть вызов в {php}{/php} (или как-то так, не помню)
сделайте свой синтаксис для вызова функций, и при парсинге проверяйте, допустима ли функция. я об этом писал ранее.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
android
Отправлено: 25 Сентября, 2014 - 15:48:32
Post Id


Посетитель


Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




OrmaJever обрезание текста это так, пример в основном. Будут использоваться собственные функции

Лучше если можете поясните про кэширование, на каком этапе нужно кэшировать и что куда выводить?
(Добавление)
DelphinPRO и если знаете то подскажите как регулярку сделать так что бы пропускало только такие комбинации:

$name_var
! $name_var
$name_var1 != $name_var2
$name_var1 > $name_var2
$name_var1 < $name_var

а так же группирование ! $name_var or $num = 1

Просто немного не понятно как сделаны условные операторы в ucoz, там вроде стандартный if else endif но пропускает только свои переменные и пару проверок по типу как я выше написал


Что вы думаете об этом?
Мне кажется нужно брать содержимое
и проверять это по шаблону как то... но такой вариант будет нести в себе большой массив с проверочными регулярками Нахмурился

Может есть какой-то способ запретить использование функций внутри условного оператора?
 
 Top
OrmaJever Модератор
Отправлено: 25 Сентября, 2014 - 17:07:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Короче говоря это не шаблонизатор получается, а грубо говоря нужно писать свой парсер и компилятор шаблонов.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
RickMan
Отправлено: 25 Сентября, 2014 - 17:11:59
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




А если использовать существующие? Например twig...
 
 Top
android
Отправлено: 25 Сентября, 2014 - 17:33:45
Post Id


Посетитель


Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




OrmaJever да скорее всего
RickMan масса ненужных вещей
 
 Top
tato
Отправлено: 26 Сентября, 2014 - 01:18:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)





android пишет:
RickMan масса ненужных вещей

Tак говорят либо senior'ы либо junior'ы, по Вашим коментариям видно, что вы не senior.
Twig и так маленький, приведите пример, что в нем лишнего?


-----
просто ?: сложно
 
 Top
android
Отправлено: 26 Сентября, 2014 - 23:11:23
Post Id


Посетитель


Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




Tato, если бы вы прочитали от начала до конца тему, то увидели бы что мне от шаблонизатора нужно только : переменные в шаблоне, условные операторы if else endif

А вот блоки, инклюбы, запуск кода пхп и од мне совершенно не нужно!
 
 Top
android
Отправлено: 27 Сентября, 2014 - 12:41:52
Post Id


Посетитель


Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




И да, у него глупый не измеряемый обратчик ошибок
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB