Wagtail 将代码插入正文(streamfield)
Wagtail insert code into body (streamfield)
是否可以使用 RawHTML 以外的任何其他方式插入 html? RawHTML 是一种威胁,想知道我是否可以用另一种方式来做。
提前致谢!
正如@gasman 在他对这个问题的评论中所说,无论您给编辑提供什么表单字段,插入 HTML 都会带来相同的风险。
但是,您可以在块类型上实施 .clean()
方法,使用 Bleach.
清理 HTML
例如只允许 <p>
个标签:
>>> raw_html = """<p id='foo' class='dangerous'>
<script>console.log('bar');</script>
<b>Hello</b>
</p>"""
>>> html = bleach.clean(raw_html,
tags=['p'],
attributes={'p': ['id']},
strip=True)
>>> print(html)
<p id='foo'>Hello</p>
是否可以使用 RawHTML 以外的任何其他方式插入 html? RawHTML 是一种威胁,想知道我是否可以用另一种方式来做。
提前致谢!
正如@gasman 在他对这个问题的评论中所说,无论您给编辑提供什么表单字段,插入 HTML 都会带来相同的风险。
但是,您可以在块类型上实施 .clean()
方法,使用 Bleach.
例如只允许 <p>
个标签:
>>> raw_html = """<p id='foo' class='dangerous'>
<script>console.log('bar');</script>
<b>Hello</b>
</p>"""
>>> html = bleach.clean(raw_html,
tags=['p'],
attributes={'p': ['id']},
strip=True)
>>> print(html)
<p id='foo'>Hello</p>