我接受Markdown并需要将其转换为HTML以在Django中安全渲染.现在我接受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
Run Code Online (Sandbox Code Playgroud)
在模板中,我将其渲染为:
{{ object.content|safe|capfirst }}
Run Code Online (Sandbox Code Playgroud)
但是,如果您发布:
0;url=javascript:alert('hi');" http-equiv="refresh
Run Code Online (Sandbox Code Playgroud)
JS将呈现,因此XSS是可能的.