2016-08-12 4 views
0

私はdjangoのブログの編集者としてtinymceを使用しています。私が得る出力は、エディタのDOMから抽出する純粋なhtmlです。同じものがデータベースに格納され、人がそのページにアクセスするとレンダリングされます。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' 
    ] 
}); 

と私は単にこの.Is div.editorの下に行くための正しい方法を内容を投稿したり、他のいくつかの方法があるフォームを送信中です。また、セキュリティの観点から、データにスクリプトやその他の種類のトラッキングデータが含まれていないことを確認するにはどうすればよいでしょうか。

答えて

0

TinyMCEのvalid_elements/extended_valid_elements設定オプションを使用して、許可するタグを制御できます。これは、TinyMCEが必要とするタグだけを許可することを保証するのに役立ちます。あなたは、クライアント側の検証を想定ことはできません言われていること

等、アプリケーションが無効なHTML、インジェクション攻撃、XSSから安全であることを確認するために十分である

私はアプリにデータを投稿することができている現実他のツール(CURLなど)を使用して、私が実際にあなたのUIを通過することはありません。あなたがTinyMCEを間違って設定した場合、あなたはそれを実現することなくタグを許可するかもしれません。データをデータベースに格納する前に、常にサーバー側で検証する必要があります。これは、保存しているものが「安全」であることを確認する唯一の方法です。

+0

これはまさに私が知りたいことです、どのように検証サーバー側を実行するのですか? djangoに同じアプリで使えるアプリがありますか?あるいは、私は最近エディタのコンテンツを設定することに遭遇しました。それはスクリプトタグを削除しますか? – georoot

+0

Djangoでサーバ側の検証を手助けしたいのであれば、タイトルとタグがそれを指している質問を作成します。 TinyMCEの 'valid_elements'を設定すると、TinyMCEが受け入れるものが制限されますが、上記のように、誰かが欺瞞的ではないと仮定している限りです。 –

関連する問題