Tôi chấp nhận Markdown và cần chuyển đổi nó thành HTML để hiển thị an toàn ở Django. Ngay bây giờ tôi đang chấp nhận form.cleaned_data và chuyển đổi nó sang HTML với:Django/Python: Chuyển đổi Markdown thành HTML an toàn
import markdown
html_body = markdown.markdown(body_markdown, safe_mode=True)
html_body = html_body.replace('[HTML_REMOVED]', '')
return html_body
Trong mẫu, tôi làm cho nó như:
{{ object.content|safe|capfirst }}
Tuy nhiên nếu bạn đăng bài:
0;url=javascript:alert('hi');" http-equiv="refresh
JS sẽ hiển thị để XSS có thể thực hiện được.
Cảm ơn câu trả lời. Tôi đã xóa 'an toàn' khỏi mẫu, tuy nhiên nó vẫn đang hiển thị. Trong JS, tôi không bao gồm các thẻ script chỉ thẳng "0; url = javascript: alert ('hi');" http-equiv = "refresh" đang chuyển qua bộ lọc JS. – user1846171
nó sẽ hiển thị ở đâu? Nếu HTML đang bị xóa và không có thẻ '