6

私は Markdown を受け入れており、Django で安全にレンダリングするために HTML に変換する必要があります。今、私は form.cleaned_data を受け入れて、それを HTML に変換しています:

import markdown
html_body = markdown.markdown(body_markdown, safe_mode=True)
html_body = html_body.replace('[HTML_REMOVED]', '')
return html_body

テンプレートでは、次のようにレンダリングしています。

{{ object.content|safe|capfirst }}

ただし、投稿する場合:

0;url=javascript:alert('hi');" http-equiv="refresh

JS がレンダリングされるため、XSS が可能です。

4

1 に答える 1