2016-08-12 2 views
0

Я использую tinymce в качестве редактора для блога в django. Результат, который я получаю, - это чистый html, который я извлекаю из DOM редактора. То же самое хранится в базе данных и отображается, когда человек посещает страницу.Tinymce проверить данные редактора в django

Этот метод, хотя и простой, но может привести к введению тегов сценариев в одно и то же. Я хочу знать, как я могу предотвратить их, чтобы данные, которые я сохраняю, являются действительными из редактора и не были подделаны. Код для timymce является

tinymce.init({ 
    selector: 'div.editor', 
    theme: 'inlite', 
    plugins: 'image table link paste contextmenu textpattern autolink', 
    insert_toolbar: 'quickimage quicktable', 
    selection_toolbar: 'bold italic | quicklink h2 h3 blockquote', 
    inline: true, 
    paste_data_images: true, 
    content_css: [ 
    '//www.tinymce.com/css/codepen.min.css' 
    ] 
}); 

и во время отправки формы я просто выкладываю содержание под div.editor .а это правильный путь, или есть какой-то другой способ. Кроме того, как я могу быть уверен с точки зрения безопасности, что данные не содержат сценарий или какие-либо другие данные отслеживания.

ответ

0

Вы можете использовать опции конфигурации valid_elements/extended_valid_elements в TinyMCE для управления тегами, которые вы хотите разрешить. Это поможет вам гарантировать, что TinyMCE позволяет только теги, которые вы хотите.

Это, как говорится, вы никогда не можете предположить, проверки на стороне клиента достаточно, чтобы обеспечить ваше приложение является безопасным от недействительного HTML, нападения инъекций, XSS и т.д.

Реальность я могу отправить данные в приложение используя другие инструменты (CURL и т. д.), чтобы я действительно не просматривал ваш пользовательский интерфейс. Если вы неправильно сконфигурируете TinyMCE, вы можете разрешить теги, не понимая, что вы это сделали. Вы всегда должны проверять данные на стороне сервера перед их хранением в своей базе данных - это единственный способ гарантировать, что сохраненное вами «безопасно».

+0

Это именно то, что я хочу знать, как выполнить проверку сервера? Есть ли в django приложение, которое я могу использовать для него. В качестве альтернативы я недавно наткнулся на настройку содержимого редактора. Удалят ли теги сценариев? – georoot

+0

Если вам нужна помощь с проверкой на стороне сервера в Django, я бы создал вопрос, где заголовок и теги указывают на это конкретно. Настройка «valid_elements» TinyMCE ограничит то, что примет TinyMCE, но, как указано выше, предполагается, что кто-то не пытается обманывать. –

Смежные вопросы