Я создаю многопользовательское веб-приложение. Каждый пользователь может иметь свой собственный сайт под моим заявлением. Я рассматриваю, как разрешить пользователю изменять шаблон без проблем с безопасностью? Я оценил некоторый шаблонизатор Python. Например, genshi, это довольно замечательный шаблонизатор, но, тем не менее, может быть опасно разрешать пользователю изменять шаблон genshi. У него такой синтаксис:
<?python
?>
Этот синтаксис позволяет вам запускать все, что вы хотите, чтобы Python мог делать. Я заметил, что, кажется, его можно отключить, передав некоторый параметр. Но есть еще много потенциальных проблем. Например, пользователь может получить доступ к встроенным функциям и методам передаваемых переменных. Например, если я передам объект ORM в шаблон. Он может содержать какой-то метод и переменную, которые я не хочу разрешать пользователю трогать. Может вот так:
site.metadata.connection.execute("drop table xxx")
Итак, мой вопрос: как я могу разрешить пользователю изменять шаблон своего сайта без проблем с безопасностью? Можно использовать любой шаблонизатор Python.
Спасибо.