Насколько безопасно использовать операторы if в html с django? - PullRequest
2 голосов
/ 10 июля 2020

Насколько безопасно использование операторов if в шаблонах html с django? Например,

{% if post.visibility == 'PUBLIC' %}
show something....
{% endif %}

Насколько легко изменить это значение с publi c на частное, если мы не отфильтруем его соответствующим образом в серверной части для хакеров или других людей?

Ответы [ 2 ]

3 голосов
/ 10 июля 2020

Это совершенно безопасно. Это вообще не «в html».

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

См .: https://en.wiktionary.org/wiki/render#Verb

1 голос
/ 10 июля 2020

Django обработка шаблона происходит на стороне сервера. Посетитель страницы увидит только окончательный результат, но не операторы if. Таким образом, он не может получить доступ к другому контенту, изменив оператор if (если нет другого способа атаковать сам сервер или ввести другие значения в оператор if, сгенерированные на основе пользовательского ввода).

...