Как отобразить только выделенные жирным шрифтом, курсивом и все другие проблемы безопасности, не связанные с безопасностью на странице?Как Django обрабатывает экранирование, когда я использую редактор TinyMCE?
ответ
Дезинфекция HTML является довольно трудной задачей, чтобы получить право. Спамеры и другие неприятные люди придумывают новые способы контрабанды HTML через санитарию все время. Самый безопасный вариант - определить белый список безобидных тегов и строго отфильтровать все другие теги с помощью истинного HTML-парсера (не с регулярными выражениями).
На djangosnippets.com есть несколько шаблонных тегов и фильтров. this или this one. При выборе фильтра обратите внимание, что он использует белый список и парсер HTML, например lxml.html (предпочтительно lxml.html.clean) или BeautifulSoup.
Чтобы отобразить все HTML (не-вытекающее), вы можете использовать safe
фильтр
{{ var|safe }}
В вашем случае, если вы хотите избежать все, за исключением некоторых тегов, вы можете написать вам собственный фильтр, который делает это:
{{ var|mysafe }}
Читайте об этом здесь: http://docs.djangoproject.com/en/dev/howto/custom-template-tags/
алгоритм фильтра может быть:
- избежать все, что
- только те экранирования в теги, которые разрешены (с помощью
.replace
или regilar выражения)
Возможно, имеет смысл настроить TinyMCE таким образом, чтобы пользователь мог вводить только те элементы, которые вы ему разрешаете. Для этого TinyMCE имеет a powerful set of rules. Если вы используете django-tinymce, см. this для настройки TINYMCE_DEFAULT_CONFIG
по вашему желанию.
- 1. Редактор Django/TinyMCE не работает
- 2. Редактор TinyMCE Менеджер изображений/Загрузить в Django
- 3. Редактор Tinymce, не отображающийся в шаблоне Django
- 4. ошибка сценария в браузере Mozilla Firefox, когда я использую редактор TinyMCE
- 5. joomla tinymce редактор проблема
- 6. Когда я использую общий вид Django update_object
- 7. Django Unicode- Когда я использую функции unicode?
- 8. TinyMCE Django Framework
- 9. Редактор Tinymce в PHP
- 10. Редактор TinyMCE не инициализирует
- 11. Редактор TinyMCE отключен
- 12. TinyMCE редактор селектора
- 13. django: редактор tinymce не загружен на нагрузку ajax
- 14. Проблема с django-tinymce
- 15. Редактор TinyMCE в SugarCRM
- 16. TinyMCE редактор ошибок
- 17. Редактор tinyMCE, отображающий html-теги
- 18. Какой редактор JSON я использую в Eclipse?
- 19. KineticJS: Когда я использую toImage(), и когда я использую кеш()
- 20. В PHP, когда я использую :: и когда я использую ->
- 21. Django: предотвращать экранирование строки unicode?
- 22. Когда я использую xdata?
- 23. Когда я использую var?
- 24. Когда я использую CFRelease?
- 25. Spell Checker В TinyMCE редактор
- 26. Как использовать текстовый редактор TinyMCE как класс?
- 27. Как сделать текстовый редактор tinymce недоступным?
- 28. Когда я использую super()?
- 29. когда я использую wordpress
- 30. Когда я использую ContentProvider
Злоумышленник должен будет отключить JavaScript (или использовать инструмент, который не интерпретирует JavaScript в первую очередь), чтобы обойти это препятствие. ** Никогда ** не полагайтесь только на проверку на стороне клиента. TIMEX попросил безопасности, и это вообще не обеспечивает никакой безопасности. – 2010-12-05 17:27:03