Является ли шаблонная разметка Django для представлений безопасной для конечного пользователя, например, для рельсовых шаблонов? - PullRequest
0 голосов
/ 19 ноября 2010

Я хочу, чтобы конечные пользователи могли редактировать свои шаблоны представлений в Интернете, поэтому он должен быть безопасным или «заключенным в тюрьму» таким образом, чтобы были доступны только те объекты, которые я явно нажимаю на странице представления.

, т.е.Я не хочу, чтобы конечный пользователь мог писать код на Python или узнавать информацию о моей строке подключения и т. Д. И т. Д.

Безопасна ли шаблонная разметка в django для представлений, безопасных для такого использования?

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Шаблоны Django по большей части безопасны, но это основано на том, что вы открыли для контекста шаблона.

Самая большая проблема - это экспонирование объектов в шаблон, поскольку все методы передаются вместе.Это особенно верно для QuerySets, которые являются наиболее распространенным объектом, передаваемым в шаблон и наиболее уязвимым.

Если вы передаете статьи из представления в шаблон

articles = Articles.objects.all()

, я мог бы сделатьследующий

{% for article in articles %}
    {{ article.delete }}
{% endfor %}
1 голос
/ 19 ноября 2010

Насколько мне известно, шаблоны Django безопасны для такого рода кода.

Единственный вид логики, кроме простых циклов / ветвей, которые могут быть выполнены в шаблоне, это то, что зарегистрировано как тег шаблона илифильтр.TT или фильтры могут быть зарегистрированы только через код бэкэнда.

Здесь вы можете увидеть список тегов и фильтров шаблонов: http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs большинство из них просто работают со строками или датами и т. Д.

Cheers

РЕДАКТИРОВАТЬ: Вы определенно хотите убедиться, что объект настроек недоступен в контексте шаблона.

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