Пользовательский шаблон Django - PullRequest
1 голос
/ 03 октября 2019

Есть ли способ, позволяющий пользователям приложения создавать свои собственные шаблоны в приложении django? В качестве примера можно привести, как MailChimp позволяет пользователям создавать свои собственные шаблоны электронной почты.

В настоящее время я думаю о создании модели, которая собирает информацию, которую пользователь хочет отобразить. эта модель может указывать на шаблон и заполнять его информацией, которую пользователь хочет отобразить. Но есть ли лучший способ?

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Как указано в документах :

Предупреждение

Система шаблонов не защищена от ненадежных авторов шаблонов. Например, сайт не должен позволять своим пользователям предоставлять свои собственные шаблоны, поскольку авторы шаблонов могут выполнять такие действия, как выполнение XSS-атак и доступ к свойствам переменных шаблона, которые могут содержать конфиденциальную информацию.

НаличиеПользовательские шаблоны, даже если шаблоны хранятся в модели, могут привести к xss-уязвимостям и их будет чрезвычайно сложно безопасно реализовать.

1 голос
/ 03 октября 2019

Другой ответивший отметил предупреждение от документов , которое включало:

доступ к свойствам переменных шаблона, которые могут содержать конфиденциальную информацию

Это большой концерн. Все таблицы Django связаны друг с другом, часто «волшебными» способами. Система шаблонов не занимается разрешениями, предоставленными аутентифицированным пользователям. Если шаблон может быть обработан, то он будет обрабатывать все, что может, то есть, если существует связь между таблицами, он будет следовать ей. Это означает, что что-то вроде записи Customer, связанной с записью User, связанной с записями Vendor и записями Item, и т. Д. Может позволить любому пользователю (или, по крайней мере, любому пользователю, имеющему разрешение на создание шаблона), просматривать практически любые данные. в системе. По крайней мере, в стандартном пакете пользователя они не смогут видеть пароли пользователей. Но они могли добраться почти до чего-либо еще. Например, они могли бы выяснить, кто еще использует систему, сколько люди платят, имена администраторов (очень полезные для фишинга!) И т. Д.

Так что в то время было бы относительно легкосоздать пользовательскую систему шаблонов Django, это не хорошая идея, по крайней мере, не в любой общедоступной системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...