【问题标题】:Is it possible to execute javascript through Wagtail's richtext field?是否可以通过 Wagtail 富文本字段执行 javascript?
【发布时间】:2021-07-31 11:07:05
【问题描述】:

我正在用 django 和 wagtail 作为 cms 构建一个网站,我想知道是否可以使用 wagtail 的默认富文本过滤器通过 wagtail 的富文本字段执行 javascript。

例如,为链接添加 onclick 属性。

出于安全原因,我的目标是防止此类事情发生。

【问题讨论】:

    标签: django web content-management-system wagtail


    【解决方案1】:

    |richtext 模板过滤器不会从其输入中去除任何 Javascript 代码(例如 onclick 属性或 <script> 标记) - 它仅对 Wagtail's internal HTML-like format 进行轻度重写,例如替换 <a linktype="page" id="123"> 页面带有真实 URL 的引用。

    但是,Javascript 代码在通过 Draftail 富文本编辑器提交时被阻止。这是因为数据以非 HTML 格式(即Draft.JS ContentState JSON)准备和提交,然后在保存到数据库时转换为 Wagtail 的类似 HTML 格式 - 在此过程中,有一个“允许列表”元素转换,并且这些都没有任何用于传递 Javascript 代码的规定。 (如果发现绕过这个机制的方法,那么这将被认为是一个安全问题,并通过Wagtail's security process处理。)

    这确实意味着,如果您的项目以一种通过富文本编辑器(例如从外部源导入内容)的方式将不受信任的富文本数据插入数据库,则您有责任为任何不需要的元素/属性验证该数据。

    【讨论】:

    • 非常感谢您提供的信息??
    猜你喜欢
    • 2021-07-30
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2016-12-25
    • 2015-06-01
    相关资源
    最近更新 更多