Как защитить код (файлы) rails приложения от людей, которые могут работать с ERB шаблонами?

Понятно, что к процессу доступ будет, главное ограничить исходный код приложения.

Rubyencoder и шаблонизатор Liquid не считаем.
  • Вопрос задан
  • 2718 просмотров
Решения вопроса 2
@flskif
Можно вынести все вьюшки в отдельный гем, который будет работать как rails engine, и подключать его к основному приложению. Но в этом случае, код основного приложения тоже должен быть доступен, чтобы была возможность проверки верстки.

Можно параноить по полной, и давать верстальщикам для проверки не настоящее приложение, а поддельное.
Ответ написан
kirushik
@kirushik
Из того что хоть сколько-нибудь распространено, единственный выход это действительно использовать специальный шаблоноязык — Liquid, Curly, Laminate, наверное ещё какие-нибудь есть.

Альтернативный вариант — использовать штатную функциональность Руби $SAFE (phrogz.net/programmingruby/taint.html), и извращаться под ней рендеринг erb запуская. Готового решения нет, целиком Рельсы даже с $SAFE=1 не запускаются.

Ну или можно вынести рендеринг шаблонов в отдельный процесс (отдельный на каждого Вашего недоверенного юзера, видимо), с которым общаться через тот или иной RPC-механизм, вплоть до JSON-сервера: туда отправляются данные, нам возвращается отрендеренный html.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы