Django: сохранение данных из пользовательского ввода и отображения - PullRequest
0 голосов
/ 11 мая 2011

У меня есть форма с редактором jwysiwyg. Глядя на это, он может использовать HTML-теги базового форматирования, используя кнопки форматирования, такие как SO. После отправки формы я замечаю, что она сохранена в базе данных как есть, тогда как, если я ввожу в редактор такие вещи, как <iframe> ... </iframe>, я замечаю, что она закодирована в формате html внутри таблицы.

Теперь, когда мне нужно вывести все, что отправил пользователь, могу ли я безопасно использовать {{ output|safe }} для отображения отформатированного текста?

Достаточно ли это безопасно или как мне исправить?

1 Ответ

3 голосов
/ 11 мая 2011

Используйте фильтр safe, только если вы сначала удалите html-данные.В противном случае вы должны использовать escape.Если вы хотите, чтобы ваши пользователи могли вводить данные с помощью HTML-тегов, вы можете попытаться очистить ввод, чтобы запретить пользователям использовать <iframe>, <script> и т. Д., Но разрешить другим тегам быть в белом списке, а затем пометить их.как safe.

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