首页 > 解决方案 > 防止来自 django tinymce 的危险用户输入

问题描述

假设我们想使用 tinymce 来允许用户输入 HTML 格式的输入。django-tinymce 包是一个方便的解决方案。

但是为了稍后将其渲染为输出,我们必须使用 {{ userinput | 安全 }} 来显示它。但是我们知道原始用户的输入是……安全的吗?

我们尤其需要警惕和清理哪些恶意 HTML 标签?在保护将呈现“安全”用户输入的未来网站用户的同时,不去除 tinymce 使用的合法标签的合理策略是什么?

标签: htmldjangotinymce

解决方案


您永远不能假设提供给您客户端的数据是“干净的”或“安全的”。如果恶意人员的目标是对您的系统造成损害,他们可以绕过您的前端及其所有验证。

您应该始终适当地配置您的前端。验证数据,将 TinyMCE 配置为仅允许您想要创建的那些类型的标签等。

但是,无论前端设计如何,您总是必须重新检查服务器上提交的内容以确保安全。根本没有办法解决这种需求。什么构成“安全”可能是基于您的应用程序做什么以及谁使用它的业务决策。

您可以使用许多不同的库在服务器端进行这种验证/清理,因此根据您的特定服务器端设置(猜测 PHP),您可以找到允许您“清理/净化”提交的 HTML 的库。


推荐阅读