За последние 24 часа нас посетили 14873 программиста и 1728 роботов. Сейчас ищут 690 программистов ...

Шаблоны Blade в базе, редактирование в CMS

Тема в разделе "Laravel", создана пользователем artoodetoo, 13 дек 2017.

  1. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.107
    Симпатии:
    1.243
    Адрес:
    там-сям
    В принципе есть примеры размещения шаблонов Blade в базе. Меня заботит применимость в CMS, когда орпеделённый круг лиц может править шаблон. В отличие от Twig, например, шаблоны Blade скорее являются исходниками на php + сахарок. То есть если я разрешу редактирование, слишком умный пользователь сможет вставить туда произвольный код.

    Елинственное что я придумал, это пропускать текст шаблона через token_get_all() чтобы вычленить <?php ?>, сигналить тревогу и не давать сохранить. От просто сломанного шаблона это не спасёт, но хотябы не будет такой дырищи.

    Буду благодарен за любые мысли по поводу. Наверняка кто-то уже решал такую проблему.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Но ведь это может быть совершенно безопасная строковая константа..

    А вообще, о каком юзере-редакторе речь идет? Думаю, это вопрос доверия "определенному кругу лиц" в первую очередь.
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Почему ты не хочешь использовать Twig?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.107
    Симпатии:
    1.243
    Адрес:
    там-сям
    @Fell-x27 @romach
    Назовём этого пользователя "редактор". Я уполномачиваю его править странички. Я не хочу, чтобы однажды он попробовал себя в роли программиста. Twig я рассматриваю как запасной вариант, но я использую Blade и хотел бы остаться с одним шаблонизатором на данном сайте. Менять язык на Python или Javascript я тоже не хочу, хотя они заслуживают внимания :D

    Вы прочитали вводные данные? В рамках этой темы они не поменяются.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    зачем давать править и защищаться одновременно?
     
    Fell-x27 нравится это.
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.582
    Симпатии:
    1.760
    @artoodetoo, есть ещё
    Код (Text):
    1. @php @endphp
     
    artoodetoo и MouseZver нравится это.
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.107
    Симпатии:
    1.243
    Адрес:
    там-сям
    Пожалуй я откажусь от идеи фильтровать <?php и @php :) Этого не достаточно, т.к. внутри тех же {{ }} можно написать выражение с любыми функциями. Надо либо безопасный шаблонизатор использовать, либо права раздавать осторожно.
    Всем спасибо.
     
  8. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    @artoodetoo других вариантов нет. Blade - изначально сделан как сахар, он не запрещает php-код, потому только Twig, при чем скорее всего как отдельный компонент, что бы можно было написать сервис дающий ему необходимое окружение и полностью отвязать от стандартного функционала Laravel.