2012-03-13 16 views
2

は、私はマークダウン機能が web2pyがHTMLエンティティを自動的にエンコードするのを防ぐにはどうしたらいいですか?

from gluon.contrib.markdown.markdown2 import markdown 

We2Pyが自動的にHTML-エンティティをエンコードするように思わ

を通じて輸入され

{{=markdown(post.message)}} 

、すべての<により、HTMLユーザー提出markdownのために生成をプリントアウトしようとしています&lt;に変換され、>はすべて&gt;に変換されます。これを防ぐ方法を教えてください。

そうしている間、心配する必要があるセキュリティ上の懸念はありますか?また、markdownを保持しながら、HTMLをデータベースに保存するにはどうすればよいですか?あなたがこれをしなければならない

答えて

9

{{=XML(markdown(post.message))}} 

すべての文字列は、あなたが"<div>"を渡した場合、それは悪意のあるコードから保護することです"&lt;div&gt;"として、それがレンダリングされ、レンダリングテンプレートによって消毒されます。

あなたはXMLヘルパーXML("<div>")に文字列を渡すと、それはXMLツリー構造にして文字列をレンダリングするXMLパーサを使用し、XMLresponse.bodyにエスケープ文字列を返すメソッド.xml()を持っているので、ユーザーのブラウザには正しいHTMLを持っています。

XMLのレンダリングの一部のパラメータを制御できます。

:param text: the XML text 
:param sanitize: sanitize text using the permitted tags and allowed attributes (default False) 
:param permitted_tags: list of permitted tags (default: simple list of tags) 
:param allowed_attributes: dictionary of allowed attributed 
+0

しかしどうですか? – Sathvik

+1

が回答に追加されました –

+0

ユーザーが同様のXMLツリー構造をスクリプトと共に送信するとどうなりますか?私はweb2pyが 'XML'出力とユーザーが出力した出力をどのように区別しているのでしょうか? – Sathvik

関連する問題